
C++知识点
文章平均质量分 71
安心学编程
越努力,越幸运!
展开
-
C++11新特性总结
相比于C++98/03,C++11是C++程序设计语言标准的一个新的版本,在2011年由ISO批准并发布。C++11新标准从而代替了原来的C++98和C++03。C++11标准是对C++的一次巨大的改进和扩充。在核心语法,STL标准模板等方面增加众多新功能,新亮点。C++11能够更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更加强大,而且能够提升程序员的开发效率,公司实际项目开发中也用得比较多,所以我们要作为一个重点去学习。原创 2024-08-09 21:15:45 · 1111 阅读 · 1 评论 -
哈希表的改造 | 封装unordered_set与unordered_map
与map、set的封装类似,unordered系列的底层本质上也是复用,通过对哈希表的改造,再分别套上一层unordered_map和unordered_set的“壳子”,以达到“一表二用”的目的。unordered系列的底层哈希表是用结构实现的。原创 2024-08-04 11:31:21 · 302 阅读 · 0 评论 -
哈希 || unordered系列的关联式容器底层 | 哈希模拟实现 | HashTable代码实现
哈希函数设计原则:哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0——m-1之间;哈希函数计算出来的地址能均匀分布在整个空间中;哈希函数应该比较简单。原创 2024-08-04 10:51:10 · 1188 阅读 · 0 评论 -
红黑树的实现
红黑树,是一种二叉搜索树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或者black。通过对任何一条根到叶子的路径上各个节点的着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。原创 2024-07-24 12:25:31 · 1041 阅读 · 1 评论 -
AVL树的实现
left:指向左孩子节点的指针;_right:指向右孩子节点的指针;_parent:指向父亲节点的指针;_kv:存储键值对的pair对象,其中K表示键,V表示值;_bf:当前节点的平衡因子,用于衡量左右子树高度差。//节点的结构体希望在整个作用域中都能自由使用用struct//AVL的底层使用三叉链的形式// 所以每个节点都要有指向他的父亲,左孩子和右孩子的指向//节点类型为kv模型//节点的值以键值对的形式进行存储//每一个节点都还要有一个平衡因子int _bf;原创 2024-07-23 18:07:30 · 948 阅读 · 1 评论 -
C++ | vector模拟实现
【代码】C++ | vector模拟实现。原创 2024-04-06 20:36:43 · 506 阅读 · 0 评论 -
C++ | string模拟实现
【代码】C++ | string模拟实现。原创 2024-04-04 18:08:11 · 359 阅读 · 0 评论 -
C++ | string类学习 | string的常见接口使用方式
string字符串是表示字符序列的类;标准的字符串类提供了帮助对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性;string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型);string类是basic_string的模板类的一个实例,它使用char来实例化basic_string模板类,并使用char_traits和allocator作为basic_string的默认参数;原创 2024-04-04 17:35:42 · 853 阅读 · 0 评论 -
C++ || C/C++内存管理 | C++动态内存管理方式 | operator new/delete函数 | new和delete实现原理 | 定位new表达式 | 内存泄漏
类名* 地址名 = new 类名[];调用operator new函数申请空间;在申请的空间上执行构造函数,完成对象的构造。内存泄漏,是指因为疏忽或者错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。原创 2024-02-05 21:00:56 · 1175 阅读 · 9 评论 -
C++ | 再谈构造函数 | Static成员 | 友元 | 内部类 | 匿名对象
初始化列表特性:每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次);类中包含以下成员,必须放在初始化列表位置进行初始化:引用成员变量(引用必须在定义的时候初始化)、const成员变量(定义之后就不能修改)、自定义类型成员(且该类没有默认构造函数);尽量使用初始化列表初始化,因为不管是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化;成员变量在类中声明次序就是其初始化列表中初始化顺序,与其在初始化列表中的先后次序无关;如果没有默认构造,编译器会编不过,所有的成员变原创 2024-02-05 12:38:09 · 1020 阅读 · 7 评论 -
C++ || 类的八种函数 | 默认成员函数 | 构造函数 | 析构函数 | 拷贝构造函数 | 赋值运算符重载 | const成员函数 | 取地址及const取地址操作符重载
构造函数属于默认成员函数。如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数;如果显示定义,则编译器不自动生成;编译器自动生成的构造函数对内置类型不做处理,对自定义类型成员调用它的默认成员函数;默认构造函数可被认为有(以下三种只能出现一种):无参的构造函数、全缺省构造函数、编译器默认生成的构造函数。建议使用全缺省构造函数。声明和定义分开,全缺省构造函数中的缺省参数应该写在函数的声明部分,而定义部分不需要写原创 2024-02-01 08:15:01 · 1193 阅读 · 25 评论 -
C++ | C++11中 基于范围的for循环 详细讲解
对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,计算机都应该知道一个数组的范围了,而自己还要告诉他,也就是很麻烦,有时候还容易犯错。对于类而言,应该提供begin和end的方法,begin和end就是for循环的迭代的范围。例如 : for(“数据类型”“变量名称”“ : ” “数组名称”)对于数组而言,就是数组中的第一个元素到最后一个元素的范围。因而C++11中引入了基于范围的for循环。原创 2024-01-24 21:18:01 · 604 阅读 · 1 评论 -
C++ | auto是什么意思?如何使用?详细讲解
在使用auto时,编译器只会堆第一个类型进行推导,然后用推导出来的类型定义其他变量。在同一行定义多个变量是,这些变量必须是相同的类型。auto “变量名称” = “赋值的内容”;原创 2024-01-24 21:12:35 · 1550 阅读 · 1 评论 -
C++ | inline 内联函数是什么意思?【面试题】宏优缺点?详细讲解
Inline对于编译器而言只是一个建议,不同编译器关于inline实现机制可能不同,(假如在调用一个指令很长的函数时,即使你使用了inline内联函数,但是如果这个函数超过了这个编译器的规定线时,编译器会忽略这个inline特性);Inline是以空间换时间;但是这里的空间注意并不是内存的空间,而是可执行程序的空间变大了;在编译阶段,会用函数体替换函数体替换函数调用。叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序的运行效率。原创 2024-01-24 21:02:23 · 590 阅读 · 0 评论 -
C++ | 引用是什么意思?引用与指针的不同点?详细讲解
语法概念上,引用就是一个别名,没有独立空间,和其他引用实体公用同一块空间;编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。底层实现上,引用实际是有空间的,因为引用是按照指针方式来实现的。例如:李逵,AKA“铁牛”“黑旋风”,都是同一个人。类型& 引用变量名(对象名)=引用实体。先初始化变量,再const引用 常量。原创 2024-01-24 20:55:55 · 790 阅读 · 0 评论 -
C++ | 函数重载是什么意思?【面试题】C++支持函数重载的原理是什么?详细讲解
一个词有多种含义,可以通过上下文来判断该词的真实含义,即该词被重载了。函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的(参数个数、类型、类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。注:函数重载时返回值的类型可以相同也可以不同。原创 2024-01-24 20:44:24 · 522 阅读 · 0 评论 -
C++ | 缺省参数什么?如何使用?详细讲解
半缺省参数必须从右往左依次给出,不能间隔给;缺省参数不能在函数声明“.h”和函数定义“.cpp”中同时出现;不能跳跃传值;缺省参数必须是常量或者全局变量;C语言不支持。原创 2024-01-24 20:34:34 · 532 阅读 · 0 评论 -
C++ | 什么是命名空间?命名空间的详细讲解
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。原创 2024-01-24 19:11:25 · 618 阅读 · 0 评论