当前位置: 首页 > news >正文

C++学习之路,从0到精通的征途:入门基础

目录

一.C++的第一个程序

二.命名空间

1.namespace的价值

2.命名空间的定义

3.命名空间使用

三.C++的输入与输出

1.<iostream>

2.流

3.std(standard)

四.缺省参数 

1.缺省参数的定义

 2.全缺省/半缺省

3.声明与定义

​五.函数重载

1.参数个数不同

2.参数类型不同

3.参数类型顺序不同

函数返回值不同是否能作为重载条件?

带有缺省参数的函数能构成重载吗?

六.引用

1.引用的概念和定义

2.引用的特性  

2.1引用在定义是必须初始化

2.2一个变量可以有多个引用

2.3引用一旦引用一个实体,再不能引用其他实体 

3.引用的使用

3.1引用传参

3.2引用作返回值

4.const引用

5.指针和引用的关系

七.inline

 1.inline的定义与概念

2.inline的特性

3.inline与宏函数的比较

八.nullptr

九.总结 


一.C++的第一个程序

        第一个程序当然是“Hello World”,不过这里我们使用C++的语法进行实现。

        在实现前,我们创建的文件必须得是.cpp文件,编译器在识别后缀为.cpp后才会调用C++编译器,这里后缀改为.c文件是会报错的。

#include<iostream>
using namespace std;int main()
{cout << "Hello World" << endl;return 0;
}

运行结果:

        这里对于代码有疑问是正常的,接下来我们来逐一讲解。

二.命名空间

1.namespace的价值

        在C语言中如果一个声明的变量名刚好与其他变量名重复或者与函数名等重复,则会出现报错,例如下面这段代码:

#include<stdio.h>
#include<stdlib.h>int rand = 0;int main()
{printf("%d\n", rand);return 0;
}

报错片段:

        可以看到报错语句为重定义:以前的定义是函数。

        在这里我们期望rand是int类型,但rand是函数类型,这说明由于stdlib.h中rand()的存在,编译器将rand识别为了函数,在C语言中如果要解决这样的问题只能再取一个其他变量名,但在C++中我们可以用命名空间去解决命名冲突的问题。

2.命名空间的定义

        定义命名空间,需要用到关键字namespace,后面跟命名空间的名字,这里用mySpace举例,再跟一对大括号{},{}中可以定义命名空间的成员,成员可以是变量/函数/类型等。

代码演示:

namespace mySpace
{int rand = 0;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}

        namespace本质是定义一个域,在C语言中由于不用域中可以定义同名变量,namespace也类似与这种特性,namespace定义的域与全局域各自独立,其通过域隔离解决了同名冲突的问题,且命名空间不会影响变量的生命周期。

        命名空间只能定义在全局,同时namespace也可以嵌套定义。

代码演示:

namespace mySpace
{namespace s1{int rand = 0;int a = 1;}namespace s2{int rand = 10;int a = 11;}
}
	printf("%d\n", mySpace::s1::a);printf("%d\n", mySpace::s2::a);

        在调用的过程中,我们使用域作用限制符::,它能在编译时通过指定域的形式进行查找。

        如第一条printf语句,就是访问MySpace中命名空间s1中的整型变量a,打印值为1。

运行结果:

·        在项目目工程文件中,同名的namespace会认为是一个namespace不会冲突:

·        我们再定义一个头文件,并创建一个同名namespace。

        

        在包含头文件后可以看到,程序并未报错,并成功输出b的值,这说明编译器认为两个namespace并不冲突,为同一个命名空间。

3.命名空间使用

         编译器的查找规则为: 1.先局部再全局        2.指定域中查找

        所以如果直接查找命名空间中的变量名而并未指定,则会报错,参考下面程序:

        如果要正确使用命名空间中定义的变量/函数,有三种方式:

        1.运用域作用限制符,指定命名空间访问,项目中推荐使用。

        2.使用using将命名空间中某个频繁使用的变量/函数展开,项目中不推荐使用。

这样就可以让上面的程序不报错了,但由于将命名空间中的a展开,可能会有同名冲突的风险。
3.用using展开命名空间中的所有成员项目中不推荐,冲突风险大,日常练习时方便推荐使用。

三.C++的输入与输出

1.<iostream>

        C++中的输入与输出不再使用<stdio.h>,而是用<iostream>,iostream是Input Output Stream 的缩写,库中定义了标准的标准的输入输出对象,其中包含<iostream>也会间接包含<stdio.h>,所以也能使用printf和scanf,不同编译器可能会报错。

2.流

        std::cin 是 istream 类的对象,它主要面向窄字符(narrow characters (of type char))的标准输入流。

        std::cout 是 ostream 类的对象,它主要面向窄字符的标准输出流。

        std::endl 是⼀个函数,流插入输出时,相当于插入一个换行字符加刷新缓冲区。现在可以简单理解为换行符。  

        <<是流插入运算符,>>是流提取运算符。(C语言中用这两个运算符做位运算左移/右移)

示例:

        C++中的输入输出不再需要像C语言那样手动指定格式,流可以自动识别变量类型,也能更好的支持自定义类型的输入输出。

例如:

3.std(standard)

        C++的标准库放在一个为std的命名空间中,cout/cin/endl都属于标准库,所以需要通过命名空间std去使用他们。   

        与命名空间的使用方式相同:

        1.域作用操作符,指定命名空间访问

	std::cin >> a;std::cout << a << std::endl;

        2.using展开频繁使用的成员

#include<iostream>
using std::cout;
using std::endl;int main()
{int a = 0;std::cin >> a;cout << a << endl;return 0;
}

        3.using展开命名空间,项目中不推荐使用,推荐日常练习

using namespace std;

四.缺省参数 

1.缺省参数的定义

        缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。调用该函数时,如果并未传输指定的实参,则直接采用缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省参数。(有些地方把缺省参数也叫默认参数)

如图:

 2.全缺省/半缺省

        全缺省就是所有形参给缺省值,示例:

        半缺省就是部分下形参给缺省值,示例:

        由于这里是半缺省,a没有缺省值,所以在调用函数时必须传至少一个参数。                

        同时C++规定半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。

报错片段:

        带有缺省参数的函数调用,传参时不可跳跃,必须从左到右依次给实参。

3.声明与定义

        带有缺省参数的函数在声明和定义分离时,不能同时给缺省参数,规定必须在声明中出现。

五.函数重载

        C++中支持在同一作用域下同名函数的出现,但必须这些函数的形参个数不同,形参类型不同,或形参类型顺序不同,这样可以让函数调用呈现多态行为,更加灵活。

1.参数个数不同

2.参数类型不同

3.参数类型顺序不同

函数返回值不同是否能作为重载条件?

        由于函数名和参数相同,在调用函数时无法根据返回值的不同来区分到底要调用哪个函数,所以会报错,显示函数f重定义

        所以函数返回值不同并不能作为重载条件。

带有缺省参数的函数能构成重载吗?

        可以看到报错语句为对重载函数的调用不明确,说明带有缺省参数的函数构成重载,但在函数调用时,编译器不知道调用的是哪个函数,存在歧义,所以会导致报错。

六.引用

1.引用的概念和定义

        引用不是定义一个新变量,而是给已有的变量取一个别名,编译器不会为引用变量开辟空间,引用变量与被引用的变量使用同一块内存空间。

类型& 引用别名 = 引用对象

	int a = 0;int& b = a;int& c = a;

        b,c是变量a的别名。这里引用符号&与取地址符号相同,根据用法区分即可。

    int& d = b;

        也可以给别名b取别名为d,所以d也是a的别名         

      由于b,c,d是a的别名,四者同用一块内存空间,在++d后,a,b,c,d的值全部自增一,并且从运行结果可以看出四个变量的地址相同,共用一块空间。 

2.引用的特性  

2.1引用在定义是必须初始化

2.2一个变量可以有多个引用

2.3引用一旦引用一个实体,再不能引用其他实体 

3.引用的使用

        引用在实际操作中主要用来作引用传参引用作返回值,从而减少拷贝,提高效率,在改变引用对象的同时改变被引用对象。

3.1引用传参

        引用传参指针传参类似,但理解和使用更加简单和方便,以Swap函数举例:

void Swap(int& x, int& y)
{int tmp = x;x = y;y = tmp;
}

运行结果:

        可以看到a,b交换了值,但与指针不同的是函数体里无需解引用操作,因为引用对象与被引用对象使用的是同一块内存空间,直接交换即可。

3.2引用作返回值

        为了更好的举例,在这里我们添加数据结构栈的头文件和源文件,代码详细参考:栈:数据结构中的“时间管理大师” 

        可以看到在让栈顶加10的操作中出现了报错,报错提示为StackTop(&st)不是左值,说明此时栈顶不可被修改,为右值

分析:

              

        在函数返回时,操作系统会将返回值储存在一个临时对象中,再将临时对象中的值返回,因为这个临时对象具有常性,所以栈顶不能被修改。那如何才能让这个操作合法呢?

        在这里我们将引用作返回值,并将参数优化为引用参数

// 获取栈顶元素 
STDataType& StackTop(Stack& ps)
{assert(ps._top > 0);return ps._a[ps._top - 1];
}

        此时函数栈帧销毁后,返回对象top并不是存在临时对象中,即函数栈帧销毁对返回其引用并无影响,故此时栈顶可修改。

        为了更深刻的理解引用作返回值的情况,再举一个示例:

        这里可以看到,虽然编译器并未报错,但是返回值并未加10,由于ret存在于函数栈帧中,出函数后,ret也销毁了,所以返回引用结果出现问题。

        对于引用返回,函数栈帧结束后,如果返回对象在函数栈帧中,返回引用就会出现问题,如果返回对象不在函数栈帧中,可以正常返回其引用。

4.const引用

        可以引用一个const对象,但引用也必须为const,对于普通对象也可以进行const引用,因为对象的访问权限在引用过程中只可以缩小,不能放大。

        在类型转换中的const引用:

        由于在类型转换时,操作系统会创建临时对象,临时对象具有常性,所以在转换时需要用const引用接收。

临时对象:

        所谓临时对象就是编译器需要⼀个空间暂存表达式的求值结果时临时创建的⼀个未命名的对象, C++中把这个未命名对象叫做临时对象

        临时对象在以下三种常用情况下会创建:

        1. 函数传值返回

        2.表达式运算

        3.类型转换

5.指针和引用的关系

        指针与引用在实践中相辅相成,在功能上有重叠性,但都有各自的特点,互相不可替代。

七.inline

 1.inline的定义与概念

        被inline修饰的函数叫做内联函数,在编译时C++编译器会在调用的地方展开内联函数,这样调用内联函数时就不需要创建函数栈帧了,提高了效率。

2.inline的特性

        inline适用于频繁调用的短小函数,对于递归函数,代码量较多的函数加上inline也会被编译器忽略。

        通过该段代码的汇编可以看到,在调用内联函数Swap时,并没有call指令,说明Swap函数在调用中已展开,根据右边的汇编代码可以进一步验证。

        inline不建议声明和定义分离到两个文件,分离会导致链接错误,因为inline被展开,就没有函数地址,链接时会报错。

3.inline与宏函数的比较

        先来看一段宏函数:

        对于这个宏函数,为了巩固理解,需要回答下面三个问题: 

        1.为什么要加分号?

        宏函数是在预处理时,将语句整体替换到调用处,如果加了分号,分号也会一并调换。

        2.为什么加外面的括号?

        宏函数在与其他式子作运算时需要考虑优先级的问题,加了外面的括号,保证宏函数优先级更高。

        3.为什么加里面的括号?

        a,b各自为一个表达式,加了里面的括号,保证表达式的优先运算。

        从这三个问题可以看出宏函数的实现很复杂,且很容易出错,不方便调试,所以C++中设计inline的目的就是为了替代宏函数,在提高效率的同时,更容易实现,不过与宏不同的是,inline的展开是在编译而不是预处理阶段,使其更容易调试。

八.nullptr

        NULL实际是一个,在传统的C头文件(stddef.h)中,可以看到如下代码:

#ifndef NULL#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif
#endif

        所以在C++中NULL可能会被定义为字面常量0,在下面这种情况下,与程序的初衷违背:

        这里func(NULL)的目的是调用func(int* ptr),但却由于NULL被定义成了数字常量0,调用成了func(int x),所以如果要调用func(int* ptr),还得对NULL强转类型:

        但强转类型只能让NULL强转一种类型,无法应对变量的多种类型,所以C++在这里引入了一个关键字:nullptr它可以转换成任意其他类型的指针类型。使用nullptr定义空指针可以避免类型转换的问题,因为nullptr只能被隐式地转换为指针类型,而不能被转换为整数类型。

示例:

九.总结 

        C++ 的这些基础内容,是踏上这门强大编程语言之旅的重要一步。从第一个程序的 “Hello, World!” 开始,我们逐步揭开了命名空间、输入输出、缺省参数、函数重载、引用、inline函数以及 nullptr 等关键概念的神秘面纱。这些知识相互关联,共同构成了 C++ 编程的基石。

相关文章:

C++学习之路,从0到精通的征途:入门基础

目录 一.C的第一个程序 二.命名空间 1.namespace的价值 2.命名空间的定义 3.命名空间使用 三.C的输入与输出 1.<iostream> 2.流 3.std(standard) 四.缺省参数 1.缺省参数的定义 2.全缺省/半缺省 3.声明与定义 ​五.函数重载 1.参数个数不同 2.参数类型不…...

RSA-OAEP填充方案与定时攻击防护

目录 RSA-OAEP填充方案与定时攻击防护一、前言二、RSA 与 OAEP 填充方案概述2.1 RSA 加密算法基础2.2 OAEP 填充方案的引入2.3 数学公式推导 三、定时攻击原理与防护策略3.1 定时攻击的基本原理3.2 防护定时攻击的策略 四、基于 Python 的 RSA-OAEP 与定时攻击防护实现五、完整…...

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件测评总结

# NVIDIA Jetson Orin Nano 8GB测评&#xff1a;当边缘计算遇上"性能暴徒"&#xff0c;树莓派看了想转行 引言&#xff1a;比咖啡机还小的"AI超算"&#xff0c;却让开发者集体沸腾 2025年的某个深夜&#xff0c;程序员老王盯着工位上巴掌大的NVIDIA Jets…...

Seata

Seata是一款开源的分布式事务解决方案&#xff0c;由阿里巴巴发起并维护&#xff0c;旨在帮助应用程序管理和协调分布式事务。以下是对Seata的详细介绍&#xff1a; 一、概述 Seata致力于提供高性能和简单易用的分布式事务服务&#xff0c;它为用户提供了AT、TCC、SAGA和XA等…...

STM32之Unix时间戳

时间戳按秒计时&#xff0c;可转换成年月日时分。32有符号存储时间戳&#xff0c;2的32次/2-1到2038年&#xff0c;STM32是2的32次方-1&#xff0c;到2106年溢出。所有时区共用一个时间戳秒计数器&#xff0c;在伦敦和北京都是0&#xff0c;不同经度加上小时即可。...

告别手动复制粘贴:可定时自动备份的实用软件解析

软件介绍 此前不少小伙伴都在找备份工具&#xff0c;其实复制文件用fastcopy就可以&#xff0c;但它需要手动操作。 今天介绍的简易备份工具则能实现定时备份。 这款软件有个小问题&#xff0c;当源目录和目标目录路径太长时&#xff0c;【立即备份】按钮可能会超出软件界面范…...

Django下防御Race Condition

目录 漏洞原因 环境搭建 复现 A.无锁无事务时的竞争攻击 B.无锁有事务时的竞争攻击 防御 A.悲观锁加事务防御 B.乐观锁加事务防御 总结 漏洞原因 Race Condition 发生在多个执行实体&#xff08;如线程、进程&#xff09;同时访问共享资源时&#xff0c;由于执行顺序…...

python从入门到精通(二十三):文件操作和目录管理难度分级练习题

文件操作和目录管理 文件操作基础难度1. 简单文件写入2. 简单文件读取3. 追加内容到文件 中级难度4. 逐行读取文件并统计行数5. 读取文件并提取特定信息6. 复制文件内容到新文件 高级难度7. 处理二进制文件8. 批量文件处理9. 日志文件分析 参考答案示例1. 简单文件写入2. 简单文…...

揭开AI-OPS 的神秘面纱 第二讲-技术架构与选型分析 -- 数据采集层技术架构与组件选型分析

基于上一讲预设的架构图&#xff0c;深入讨论各个组件所涉及的技术架构、原理以及选型策略。我将逐层、逐组件地展开分析&#xff0c;并侧重于使用数据指标进行技术选型的对比。 我们从 数据采集层 开始&#xff0c;进行最细粒度的组件分析和技术选型比对。 数据采集层技术架构…...

jupyter配置多个核心

CMD输入 先创建虚拟环境 "D:\Program Files\Python37\python.exe" -m venv myenv激活虚拟环境 myenv\Scripts\activate"D:\Program Files\Python37\python.exe" -m pip install ipykernel "D:\Program Files\Python37\python.exe" -m ipykern…...

如何优化FFmpeg拉流性能及避坑指南

FFmpeg作为流媒体处理的核心工具&#xff0c;其拉流性能直接影响直播/点播体验。本文从协议优化、硬件加速、网络策略三大维度切入&#xff0c;结合实战案例与高频踩坑点&#xff0c;助你突破性能瓶颈&#xff01; 一、性能优化进阶&#xff1a;从协议到硬件的全链路调优 协议选…...

机器学习:线性回归,梯度下降,多元线性回归

线性回归模型 (Linear Regression Model) 梯度下降算法 (Gradient Descent Algorithm) 的数学公式 多元线性回归&#xff08;Multiple Linear Regression&#xff09;...

笔记五:C语言编译链接

Faye&#xff1a;孤独让我们与我们所爱的人相处的每个瞬间都无比珍贵&#xff0c;让我们的回忆价值千金。它还驱使你去寻找那些你在我身边找不到的东西。 ---------《寻找天堂》 目录 一、编译和链接的介绍 1.1 程序的翻译环境和执行环境 1.1.1 翻译环境 1.1.2 运行环境 …...

SpringUI:打造高质量Web交互设计的首选元件库

SpringUI作为一个专为Web设计与开发领域打造的高质量交互元件库&#xff0c;确实为设计师和开发者提供了极大的便利。以下是对SpringUI及其提供的各类元件的详细解读和一些建议&#xff1a; SpringUI概述 SpringUI集合了一系列预制的、高质量的交互组件&#xff0c;旨在帮助设…...

LeetCode - 神经网络的 反向传播(Sigmoid + MSE) 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/146085177 使用 Python + Numpy,设计带有 Sigmoid 激活函数 的神经网络,实现反向传播以更新神经元的权重和偏置。函数输入:特征向量(Input)、真实标签(Label)、初始…...

Elastic如何获取当前系统时间

文章目录 1. 使用 _ingest.timestamp 在 Ingest Pipeline 中获取当前时间2. 使用 Painless Script 获取当前时间3. 使用 now 关键字在查询中获取当前时间4. 使用 date 类型字段的默认值5. 使用 Kibana 的 Dev Tools 查看当前时间6. 使用 date 聚合获取当前时间7. 使用 Elastics…...

腾讯云对象存储服务(COS)

腾讯云对象存储服务&#xff08;COS&#xff09; 安全、可扩展、低成本的云存储解决方案 腾讯云 对象存储服务&#xff08;COS&#xff0c;Cloud Object Storage&#xff09; 是一种高可靠、高性能、可扩展的云存储服务&#xff0c;专为海量非结构化数据&#xff08;如图片、…...

力扣35.搜索插入位置-二分查找

class Solution:def searchInsert(self, nums: List[int], target: int) -> int:# 初始化左右指针left, right 0, len(nums) - 1# 当左指针小于等于右指针时&#xff0c;继续循环while left < right:# 计算中间位置mid (left right) // 2# 如果中间元素等于目标值&…...

SSLScan实战指南:全面检测SSL/TLS安全配置

SSLScan是一款开源的SSL/TLS安全扫描工具,用于检测服务器的加密协议、支持的加密套件、证书信息以及潜在的安全漏洞。本指南将详细介绍如何安装、使用SSLScan,并结合实战案例帮助您全面评估服务器的安全性。 一、SSLScan简介 功能特性: 检测支持的SSL/TLS协议版本(如TLS 1.…...

Linux 进程管理

一.进程 1.基本介绍 在Linux中每一个执行的程序都称之为进程&#xff0c;每一个进程都会分配一个进程号&#xff08;PID&#xff09;。进程以前台和后台两种方式存在&#xff0c;前台进程就是我们可以在屏幕上操作的&#xff0c;后台进程我们无法在屏幕上看到。 程序是静态的…...

mfc140u.dll是什么?当程序遭遇mfc140u.dll问题:快速恢复正常的秘诀

在使用Windows操作系统运行某些软件时&#xff0c;不少用户会遇到令人头疼的mfc140u.dll文件丢失错误。mfc140u.dll这个错误一旦出现&#xff0c;往往导致相关程序无法正常启动或运行&#xff0c;给用户带来诸多不便。这天的这篇文章将给大家分析mfc140u.dll是什么&#xff1f;…...

日新F1、瑞研F600P 干线光纤熔接(熔接损耗最大0.03DB)

Ⅰ. 设备特性对比与实测验证 1. 日新F1&#xff08;两马达&#xff09;极限参数 切割角度&#xff1a;必须≤0.3&#xff08;双边累计误差&#xff1c;0.6&#xff09; ▶ 实测案例&#xff1a;切割0.35时&#xff0c;损耗波动达0.05-0.08dB&#xff08;超干线标准&#xff09…...

【我的待办(MyTodolists)-免费无内购的 IOS 应用】

我的待办&#xff08;MyTodolists&#xff09; 我的待办&#xff1a;智能任务管理助手应用说明主要功能为什么选择"我的待办"&#xff1f;隐私保障使用截图 我的待办&#xff1a;智能任务管理助手 应用说明 "我的待办"是一款智能化的任务管理应用&#x…...

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 &#xff08;一&#xff09;社会需求背景 在全球化的大背景下&#xff0c;英语作为国际…...

测试直播web自动化所学

web框架封装 web自动化开始&#xff1a;用电脑替代人工测试。 日常人工测试 —— 先点击XX 输入XXX 。。。页面是否符合预期 自动化测试的编码&#xff1a; web自动化&#xff0c;Selenium[常用测试库] Selenium&#xff0c;每个页面&#xff0c;是由元素组成的。html构成。 …...

Vue+Ant Design搭建AI聊天对话

今天在这里介绍一下 Ant Design X&#xff0c;这是蚂蚁设计团队推出的一款专注于人工智能&#xff08;AI&#xff09;领域的组件库&#xff0c;主要面向 React 生态系统(目前支持Openai&#xff0c;通义千问)。官方也推出了ant-design-x-vue 面向 Vue。当然我们今天的主题也是使…...

应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能

概述 随着工业4.0的深入推进&#xff0c;制造业对自动化和智能化的需求日益增长。传统生产线面临空间不足、效率低下、灵活性差等问题&#xff0c;尤其在现有工厂改造项目中&#xff0c;如何在有限空间内实现高效自动化成为一大挑战。 此次项目的客户需要在现有工厂基础上进行…...

JavaScript基础-运算符的分类

在JavaScript编程中&#xff0c;运算符是构建表达式和执行操作的基础工具。了解不同类型的运算符以及它们的工作原理对于编写高效且无误的代码至关重要。本文将介绍JavaScript中的主要运算符类型&#xff0c;并通过实例展示它们的用法。 一、算术运算符 算术运算符用于执行基…...

URIError: URI malformed

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…...

达梦适配记录-检查服务器

service DmServicedmdb status 查看是否开启&#xff0c;没有配置systemctl&#xff0c;查看《DM8_Linux 服务脚本使用手册》2.1.2.2 1 &#xff0e;拷贝服务模板文件&#xff08; DmService &#xff09;到目录&#xff08; /opt/dmdbms/bin &#xff09;&#xff0c;并将新文…...

【leetcode hot 100 160】相交链表

解法一&#xff1a;&#xff08;哈希集合&#xff09;利用HashSet保存一个链表的值&#xff0c;循环另一个列表&#xff0c;在HashSet中寻找该值。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x…...

选择排序算法的SIMD优化

一、优化原理 将查找数组最小值索引的SIMD优化的函数嵌入选择排序主循环,优化最耗时的最小值查找环节,同时保留选择排序的交换逻辑。 二、关键改造步骤 1)最小值查找模块化 复用SIMD优化的 find_min_index_simd函数。 2)动态子数组处理 每次循环处理 arr[i..n-1] 子数…...

Visual Studio Code打开远程服务器项目,打开服务器Android上百G源码,SSH免密连接方式

Visual Studio Code打开远程服务器项目 1&#xff0c;Visual Studio Code拓展中&#xff0c;安装远程插件 Remote Development 2&#xff0c;SSH免密连接&#xff0c;A电脑免密连接B&#xff0c;配置B电脑.ssh/authorized_keys A电脑的.ssh/id_rsa.pub中的公钥内容&#xff0c;…...

vscode mac版本 配置git

首先使用 type -a git查看git的安装目录 然后在vscode中找到settings配置文件&#xff0c;修改git.path...

BUUCTF——[GYCTF2020]FlaskApp1 SSTI模板注入/PIN学习

目录 一、网页功能探索 二、SSTI注入 三、方法一 四、方法二 使用PIN码 &#xff08;1&#xff09;服务器运行flask登录所需的用户名 &#xff08;2&#xff09;modename &#xff08;3&#xff09;flask库下app.py的绝对路径 &#xff08;4&#xff09;当前网络的mac地…...

【QT常用技术讲解】window系统以CMD命令行方式执行第三方程序及注册表文件命令

前言 在window下&#xff08;本篇为window10&#xff09;&#xff0c;调用第三方应用&#xff0c;可以调用后台CMD执行的命令行。如果是浏览器调用第三方应用&#xff0c;可以通过自定义域名调用指定的处理脚本&#xff0c;处理脚本再调用第三方软件。本篇只讲解QT程序调用后台…...

manus是什么?能干啥?

Manus哪儿来的&#xff1f; ​ Manus是一款由中国团队Monica.im于2025年3月5日发布的通用型AI代理&#xff08;AI Agent&#xff09;产品&#xff0c;旨在通过自主思考、系统规划和灵活工具调用&#xff0c;帮助用户完成各种复杂任务&#xff0c;从而解放用户的时间与创…...

物联网系统搭建

实验项目名称 构建物联网系统 实验目的 掌握物联网系统的一般构建方法。 实验要求&#xff1a; 1&#xff0e;构建物联网系统&#xff0c;实现前后端的交互。 实验内容&#xff1a; CS模式MQTT&#xff08;不带数据分析处理功能&#xff09; 实现智能设备与应用客户端的交…...

恭喜!《哪吒2》明天将荣登世界影坛第六!目前仅差1.81亿元

全球总票房为为20.27亿美元&#xff01;3月8日将荣登世界影坛第六宝座&#xff01; 中国票房 内地票房 中国电影票房、灯塔、猫眼三大数据源加权平均得出《哪吒2》中国内地总票房为144.26亿元人民币。 港澳票房 目前港澳地区没有新的数据显示&#xff0c;按3月6日1905电影网…...

2025 ubuntu24.04系统安装docker

1.查看ubuntu版本&#xff08;Ubuntu 24.04 LTS&#xff09; rootmaster:~# cat /etc/os-release PRETTY_NAME"Ubuntu 24.04 LTS" NAME"Ubuntu" VERSION_ID"24.04" VERSION"24.04 LTS (Noble Numbat)" VERSION_CODENAMEnoble IDubun…...

浅说图论基础

引入 在学最短路算法之前&#xff0c;我们要先搞清楚另外一个事情&#xff0c;什么是图&#xff0c;我们又可以基于图做那些事情。 图不同于树&#xff0c;它是一种更加复杂的数据结构&#xff0c;相比较于树或者数组&#xff08;线性表&#xff09;而言&#xff0c;图的关联…...

DeepSeek【部署 03】客户端应用ChatBox、AnythingLLM及OpenWebUI部署使用详细步骤

DeepSeek客户端应用 1.ChatBox2.AnythingLLM3.OpenWebUI4.总结 客户端软件提供可视化的模型及参数配置&#xff0c;人性化的对话窗口及文件上传功能&#xff0c;大大降低了大模型的使用门槛。 1.ChatBox Chatbox AI 是一款 AI 客户端应用和智能助手&#xff0c;支持众多先进的…...

工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)

作为在 HarmonyOS 开发一线摸爬滚打的工程师&#xff0c;笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读&#xff08;v14 实战版&#xff09;开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…...

mapbox进阶,模仿百度,简单实现室内楼层切换

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️fill-extrusion三维填充图层样式1.4 ☘…...

发行基础:热销商品榜单

转载自官方文件 ------------------ 热销商品榜单 Steam 在整个商店范围内有各种热销商品榜单&#xff0c;最醒目的莫过于 Steam 主页上的榜单了。 您也可以在浏览单个标签、主题、类型时找到针对某个游戏类别的热销商品榜单。 主页热销商品榜单 该榜单出现在 Steam 主页上…...

Android Studio 一直 Loading devices

https://stackoverflow.com/questions/71013971/android-studio-stuck-on-loading-devices...

【时间序列】因果推断:从时序数据中探寻“因”与“果”

在日常生活中&#xff0c;我们经常听到这样的问题&#xff1a;“为什么股票价格会突然下跌&#xff1f;”、“天气变化是否会影响销售额&#xff1f;”这些问题背后&#xff0c;其实都在试图寻找一种因果关系。然而&#xff0c;在时间序列数据中&#xff0c;探寻因果关系并不像…...

联核科技AGV无人叉车的应用场景有哪些?

联核科技AGV无人自动叉车在多个应用场景中均展现出卓越的性能和广泛的应用价值。下面是针对每个应用场景的简要概括、适用车型及其功能的详细介绍联核科技官网-AGV叉车十大品牌-无人叉车厂家-自动化叉车-智能搬运码垛机器人-智能叉车系统解决方案专家 上存下拣 上层四向车立体…...

多模态知识图谱融合

1.Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 1.1多模态实体对齐 1.2多模态实体链接 研究进展&#...

c++实现最大公因数和最小公倍数

最大公因数和最小公倍数的介绍 读这篇文章&#xff0c;请你先对最大公因数以及最小公倍数进行了解&#xff1a; 最大公因数&#xff08;英文名&#xff1a;gcd&#xff09; 定义&#xff1a;最大公因数&#xff0c;也称最大公约数&#xff0c;指两个或多个整数共有约数&…...