![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 79
风中的默默
1998年过去了,我们很怀念它
展开
-
内存泄漏检测
代码量比较少的情况,可以自己写malloc和free函数,然后用宏定义来替换,自己的malloc和free函数里就分别记录每次分配和释放内存时内存大小和位置记录。模仿shared_ptr维护一个引用数,在程序结束时如果引用计数表不为空,则打印出存在内存泄漏的相关信息。如果有内存泄漏的话,它就会提示堆溢出问题什么的,会定位到文件里的具体行数。,显示有内存泄漏错误,定位到具体行数。生成test可执行文件后直接。安装valgrind后,使用。原创 2024-04-02 23:55:08 · 195 阅读 · 0 评论 -
Lambda表达式
Lambda默认一个const函数,mutable可以取消其常量性,在使用mutable时,参数列表不可省略(即使参数为空)。lambda的实现就像是范围for底层实际是迭代器一样,它的底层就是仿函数,也就是重载operator()运算符。一个lambda有两个部分必须持有,捕捉列表、函数体。Lambda作用:定义匿名函数对象的便捷方法。原创 2024-04-01 23:34:49 · 135 阅读 · 0 评论 -
【C++】(一)基础语法
实际上每个元素在放的时候都是有一个偏移量的,第一个元素的偏移量是0,其他元素的偏移量是对齐数的整数倍(所谓对齐数是当前这个元素大小和当前编译器默认对齐数,它们两个之间的最小值),而且存放元素完成之后,还需要看一下当前总的存储单元是不是这些元素中最大对齐数的整数倍,如果不是的话需要补成整数倍,也就是后面会空几个位置。我们都知道在内存中放数据之后CPU会来读取,但是CPU从内存中读取数据的时候并不是一个字节一个字节来读,而是一块一块来读的,这个块的大小叫做内存的读取粒度。那这就是结构体的内存对齐。原创 2023-06-01 17:10:19 · 7433 阅读 · 0 评论 -
【C++】(二)函数、类、模板
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类, 新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承缺点:耦合度高,因为继承了父类的东西,所以想分开就很难了,藕断必定丝连。增减的代码维护难度,尤其是多重继承和兄弟关系继承,毕竟家族历史长派生类中包含并且可以使用它从基类继承而来的成员,为了使用这些成员,派生类必须知道他们是什么。所以必须定义而非声明。模板是c++的一种特性,它可以让类或者函数在对应不同的类型的时候正常工作,而不用为每一种类型分别写一份代码。原创 2023-07-02 17:26:04 · 9524 阅读 · 0 评论 -
【C++】(三)STL
STL(Standard Template Library),即标准模板库。它是94年被正式纳入C++标准,是 C++ 标准库的重要组成部分。它不仅仅是一个可复用的组件库,而且是一个包含了许多常用的数据结构和算法的软件框架。STL的第一个比较重要的特点是数据结构和算法的分离。STL构成STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。首先vector的扩容原理是申请新空间,拷贝元素,释放旧空间。原创 2023-07-02 17:27:26 · 9528 阅读 · 0 评论 -
【C++】(四)内存状态
实际上每个元素在放的时候都是有一个偏移量的,第一个元素的偏移量是0,其他元素的偏移量是对齐数的整数倍(那么所谓这个对齐数,指的是当前元素大小和当前编译器默认对齐数,它们两个之间的最小值),偏移了之后就开始放元素,当元素都放完之后,还需要看一下当前总的存储单元是不是这些元素中最大对齐数的整数倍,如果不是的话需要补成整数倍,也就是后面会空几个位置。我们都知道在内存中放数据之后CPU会来读取,但是CPU从内存中读取数据的时候并不是一个字节一个字节来读,而是以块儿的形式来读的,这个块儿的大小是内存的读取粒度。原创 2023-07-02 17:34:42 · 7092 阅读 · 0 评论 -
【C++】(五)11新特性
所以在刚才的例子里,我们可以用weak_ptr声明链表节点的pre和next两个指针,那么节点在指向前一个或后一个节点后并且不会改变shared_ptr的引用计数,当node1计数为0时,node1指向的空间就会被销毁掉。auto是C++11新增的一个关键字,auto也叫类型说明符,它可以让编译器替我们去分析表达式所属的类型,它仅仅是一个占位符,在编译期间它会进行类型推导,然后被真正的类型所替代。我们需要一个指针对象,需要一个引用计数的指针设定对象的值,并将引用计数计为1,需要一个构造函数。原创 2023-07-02 17:42:37 · 292 阅读 · 0 评论 -
C++ primer 5th笔记
C++ primer 5th笔记原创 2022-11-26 10:37:13 · 1321 阅读 · 0 评论