
C++
文章平均质量分 84
颖风船
嵌入式软件开发、硬件工程师、系统工程师
展开
-
C++中的unordered_map
因此,可以通过判断 find 方法的返回值是否等于 map.end() 来判断是否存在键为 temp 的元素,从而决定是否需要将当前元素的值和下标保存到哈希表中。因此,可以通过判断 find 方法的返回值是否等于 map.end() 来判断是否存在键为 temp 的元素,从而决定是否需要将当前元素的值和下标保存到哈希表中。如果 find 方法返回的迭代器指向哈希表的尾部,则说明哈希表中不存在键为 temp 的元素,需要将当前元素的值和下标保存到哈希表中。3、在哈希表中查找是否存在键为 temp 的元素。原创 2023-05-29 08:37:23 · 3583 阅读 · 0 评论 -
C++ primer plus笔记 --- 第17章、输入、输出和文件
C++中的输入流和输出流是对程序进行输入和输出操作的主要方式。输入流用于从外部获取数据,输出流用于向外部输出数据。C++中的输入输出操作都是通过I/O流(输入/输出流)来完成的。I/O流是指stream,它是一个抽象类,派生出了继承了它的输入流istream和输出流ostream。输入流和输出流分别和两个预定义的对象cin和cout绑定,它们在iostream头文件中定义。数据的输入和输出都是针对流对象进行操作。cin和cout对象依赖于系统,因此在不同的系统之间可能会有一些差异。原创 2023-05-11 09:01:06 · 722 阅读 · 0 评论 -
C++ primer plus笔记 --- 第16章、string类和标准模板库
在C++中,STL库中提供了一些预定义的函数符,可以直接使用,也可以作为其他函数符的基础。这些预定义的函数符包括:less/greater: 用于比较两个类型为T的值的大小,返回true/false。plus/minus/multiplies/divides/modulus: 分别表示加、减、乘、除、取模操作,用于支持对应的数值类型T。原创 2023-05-11 08:29:17 · 261 阅读 · 0 评论 -
C++ primer plus笔记 --- 第15章、友元、异常和其他
在 C++ 中,友元是一种特殊的关系,它使得一个函数或者类能够访问另一个类的私有成员变量或者成员函数。友元可以被定义为一个函数、类、成员函数、或者整个命名空间。在使用友元时,需要在被访问的类中声明友元,可以在类定义中使用friend在上面的代码中,我们通过使用friend关键字声明了一个友元类MyClass和一个友元函数,它们都能够访问类的私有成员变量。使用友元可以提高代码的灵活性和可维护性,但也会降低封装性,增大了代码的复杂度,因此应该谨慎使用。原创 2023-05-10 08:49:33 · 246 阅读 · 0 评论 -
C++ primer plus笔记 --- 第14章、C++中的代码重用
valarray类是C++标准库中提供的一个通用数组类。它是一个模板类,能够存储任意类型的数据,并提供了很多操作数组的函数和运算符。使用这些函数和运算符可以方便地对数组进行数学运算和算法实现。valarray类的主要特点如下:支持常规数组的操作,例如访问特定元素,对所有元素应用任意函数,以及提取部分数组。支持所有基本数学算法,例如对valarray对象进行运算,在valarray对象之间进行运算,并进行逐元素的数学函数应用。原创 2023-05-10 08:17:54 · 408 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第13章、类继承
一个简单的基类通常包括一些数据成员和成员函数,而这些成员函数可以用于被派生类继承和/或重写。在上述源代码中,我们定义了一个Shape类,作为几何图形的基类。Shape类有两个虚函数area()和,用于返回图形的面积和周长。这些虚函数将被派生类继承和重写。在这个例子中,我们并没有定义任何数据成员。注意,我们在虚函数的声明中使用了virtual关键字来标识这些函数。这表示这些函数是虚函数,并且需要在派生类中进行重写,以提供特定于派生类的实现。如果不使用virtual。原创 2023-05-09 13:10:19 · 532 阅读 · 0 评论 -
C++ primer plus笔记 --- 第12章、类和动态内存分配
在 C++ 中,我们可以使用动态内存分配来为类对象动态分配内存。动态内存分配指的是在程序运行的过程中,根据需要动态地分配内存空间。与之相对应的是静态内存分配,即在程序编译时就就已经确定了内存的分配情况,无法根据程序运行的需要进行调整。new和delete。其中,new运算符用于向操作系统申请内存空间,返回指向该空间的指针;delete运算符用于释放之前申请的动态内存空间,使该空间变为可用状态。上述代码中,我们定义了一个名为MyString的类,其中包含了指向字符数组的指针buf_和字符数组的长度。原创 2023-05-09 08:46:02 · 377 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第11章、使用类
运算符重载是指在C++中,可以对运算符进行重载来定义类的行为,从而使得类的对象可以像基本数据类型一样进行运算。通常情况下,运算符重载是通过类的成员函数或全局函数来实现的。其中,operator是关键字,用于声明运算符名称。在参数列表中可以定义运算符的几个操作数,如果是成员函数,则第一个参数为隐式的this指针。例如,假设定义了一个名为Vector的向量类,可以重载加号运算符,使得两个向量对象可以相加。在上述代码中,Vector类定义了一个公有成员函数,用于重载加号运算符。当对Vector。原创 2023-05-08 09:47:56 · 252 阅读 · 0 评论 -
C++ primer plus笔记 --- 第10章、抽象和类
在C++中,声明和定义构造函数的方法与普通函数类似。在类的定义中,可以声明构造函数,也可以定义构造函数。声明和定义构造函数的语法如下:public:MyClass();// 声明构造函数// 实现构造函数的功能还可以实现带参数的构造函数,方法与定义默认构造函数类似。public:// 声明构造函数// 实现构造函数的功能需要注意的是,函数声明时不能包含函数体,函数定义时必须包含函数体。在定义构造函数时,应当完成类的初始化、内存分配、资源申请等操作,保证类的对象能够正确地进行使用。原创 2023-05-08 09:12:48 · 205 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第9章、内存模型和名称空间
单独编译是指将一个大型程序划分为多个源文件,并将这些源文件分别编译为单独的目标文件,再将这些目标文件链接为最终的可执行文件。使用单独编译可以简化程序的维护和管理,并提高代码的复用性和可读性。在 C++ 中,单独编译的工具是编译器和链接器。编译器负责将源代码编译为目标文件,而链接器负责将这些目标文件链接在一起,生成最终的可执行文件。在单独编译的过程中,开发人员需要合理编写头文件和源文件,以尽可能减小重复编译的次数,从而提高编译效率。在这个示例中,我们将Circle类的定义分别放在头文件Circle.h。原创 2023-05-06 08:51:08 · 191 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第8章、函数探幽
C++ 内联函数是一种函数调用机制,在编译器的优化下颇为常见,其主要目的是因为函数调用在运行期间会存在一定的时间和空间开销。内联函数允许编译器将被调用的函数代码直接嵌入到调用该函数的位置,这样可以避免额外的函数调用开销和参数传递,从而提高程序的运行速度。在 C++ 中,内联函数一般通过在函数定义前面加上inline关键字来声明。在上述代码中,add()函数被声明为内联函数,通过inline关键字告诉编译器将该函数的代码展开到调用其的位置。需要注意的是,内联函数并非在所有情况下都比普通函数更快。原创 2023-05-06 08:24:10 · 247 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第7章、C++的编程模块
在 C++ 中,我们可以使用的语法定义函数,其中为函数名,括号中可以包含函数的参数列表。在函数定义中,我们需要指定函数的返回值类型、函数名和参数列表,以及函数体中的具体操作。int x = 1;int y = 2;// 调用 sum() 函数,计算 x 和 y 的和,结果赋值给 zreturn 0;在上面的示例代码中,我们定义了一个sum()函数,它接受两个整数参数a和b,返回它们的和。在main()函数中,我们定义了两个变量x和y,并将它们作为参数调用sum()函数,将结果赋值给变量z。原创 2023-05-05 13:13:21 · 441 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第6章、分支语句和逻辑运算符
if 语句是 C++ 中最基本的控制流语句之一。其中condition是一个返回 bool 类型的表达式。当condition的值为 true 时,if 语句后面的代码块将会被执行;否则,if 语句后面的代码块将被跳过。在上面的代码中,定义了变量x并将其初始化为 10。if 语句中的条件为x > 5,因此 if 语句后的代码块被执行,并将 “x is greater than 5” 输出到标准输出流中。在 if 语句中,如果只有一条语句需要执行,那么可以省略代码块的大括号。原创 2023-05-05 08:21:43 · 384 阅读 · 0 评论 -
C++ primer plus学习笔记 --- 第5章、循环和关系表达式
本文介绍了 C++ 中循环结构的不同类型及其用法,包括 for 循环、while 循环、do-while 循环和范围-for 循环。其中 for 循环是最常见的循环结构,可以使用多种方式进行重载。while 循环和 do-while 循环则适用于需要根据特定条件重复执行的情况。范围-for 循环则是 C++11 引入的新特性,用于简化迭代器和指针的使用。此外,本文还介绍了嵌套循环和二维数组的概念。使用二维数组时,常采用嵌套循环的方式遍历每个元素。原创 2023-05-04 15:49:35 · 550 阅读 · 0 评论 -
C++ primer plus笔记 --- 第4章、复合类型
string 类,必须包含头文件string,string类位于名称空间中。C++ 11字符串初始化,注意C/C++两种风格// C语言风格// C语言风格// C++风格// C++风格// C++风格C语言风格不能将一个数组赋值给另一个数组,但可以将一个string对象赋值给另一个string对象。结构(Structure)是一种用户自定义的数据类型,在程序中用于组织和存储相关的变量。结构包含一组不同的变量,这些变量可能是不同的数据类型,例如整型、浮点型、字符型等。在C++中,结构通过。原创 2023-05-04 08:59:48 · 446 阅读 · 1 评论