C++基础
文章平均质量分 93
对多篇文章及书籍进行汇总的学习笔记,包含C++语法基础,STL的内容,供读者学习及复习使用
存星
这个作者很懒,什么都没留下…
展开
-
C++基础总结系列之【构造函数】
目录 特点 作用 分类 调用规则 是否自定义构造函数 自定义的构造函数是否有参数 是否自定义拷贝构造函数 初始化列表 作用 必须使用初始化列表的情况 解释一下对象成员为什么必须要在初始化列表中初始化 使用初始化列表的原因 用构造函数初始化 用初始化列表初始化 初始化列表的执行顺序 拷贝构造函数 调用时机 初始化 值传递 值返回 浅拷贝与深拷贝 解决办法 特点 没有返回值,函数名与类名相同,可以有重载,只调用一次 作用 用于在创建对象时,给对象...原创 2021-03-22 20:42:20 · 205 阅读 · 0 评论 -
C++基础总结系列之【内存结构】
目录 内存分区 内存图 内存四区 栈区 堆区 数据区 代码区 堆与栈的区别 动态内存管理 malloc、calloc、realloc new/delete new和malloc的区别 智能指针 内存对齐 what why 没有内存对齐机制 引入内存对齐机制 how 对齐系数 有效对齐值(对齐单位) 结构体内存对齐规则 类内存对齐规则 常见的内存错误(如何避免内存泄漏) 内存分区 内存图 内存四区 栈区 作用:保存局部变量、函数调用参数原创 2021-03-19 20:51:35 · 1423 阅读 · 0 评论 -
C++STL学习总结系列之【序列式容器——vector】
目录 特点 vector的数据结构 例子 vector的构造函数 1.不带参数的构造函数 2.默认的拷贝构造函数 3.创建一个有n 个对象的 vector 4.创建一个包含从 start 到 end 之间的所有元素的 vector 5.利用数组创建vector vector操作的内存管理 push_back pop_back erase 特点 其操作方式与C++中的数组array类似,但两者的区别在于空间运用的灵活性 1.array是静态空间,一旦配置就不能再改变大小 2.原创 2021-03-11 15:15:15 · 197 阅读 · 0 评论 -
C++基础总结系列之【智能指针】
目录 智能指针 what why how auto_ptr unique_ptr shared_ptr weak_ptr 智能指针 what 在C++中,对动态内存的管理是通过new和delete完成的,在使用时极其容易出现问题,因为确保在正确的时间释放内存是很难的,有时忘记释放内存,就会产生内存泄漏,有时在尚有指针引用内存的情况下就释放了内存,就会产生引用非法内存的指针的情况。为了更安全地使用动态内存,C++新标准库提供了智能指针来管理动态对象,它的行为类似于常规指针,重要的区别是它原创 2021-01-28 21:57:25 · 270 阅读 · 0 评论 -
C++STL学习总结系列之【1.空间配置器】
1.空间配置器 1.1what 空间配置器,顾名思义就是为各个容器高效管理空间(空间的申请与回收)的,在默默地工作。 虽然在常规使用STL时,可能用不到它,但站在学习研究的角度,学习它的实现原理对我们有很大的帮助。 1.2why 当我们自己动手实现vector、list、map、unordered_map等容器时,所有需要的内存空间都是通过malloc或new申请的,虽然代码可以正常运行,但是有以下不足之处: 内存泄漏:堆区空间申请与释放需要程序员自己管理; 内存碎片:频繁申请小块内存会产生外原创 2021-01-23 19:37:34 · 213 阅读 · 2 评论