C++
文章平均质量分 88
弥川
手持两把锟斤拷,口中疾呼烫烫烫
展开
-
list源码剖析
list源码剖析文章目录list源码剖析定义模板参数成员函数特殊函数元素访问迭代器容量修改器操作非成员函数参考资料定义定义:支持常数时间从容器任何位置插入和移除元素的容器。不支持快速随机访问。通常实现为双向链表。template< class T, class Allocator = std::allocator<T>> class list;模板参数T - 必须满足可拷贝赋值 (CopyAssignable) 和可拷贝构造 (CopyConstructi原创 2022-05-01 12:55:10 · 195 阅读 · 0 评论 -
vector源码剖析
vector源码剖析文章目录vector源码剖析定义成员类型成员函数特殊函数元素访问迭代器容量修改器非成员函数参考资料定义定义:封装动态数组的顺序容器。template< class T, class Allocator = std::allocator<T>> class vector;**模板参数 **T 必须满足可拷贝赋值(CopyAssignable)和可拷贝构造(CopyConstructible)的要求。Allocator 用于获取/释放内存原创 2022-04-30 22:55:06 · 652 阅读 · 0 评论 -
C++ Template
C++ Template❓为什么要使用模板不用模板方式实现功能重复实现相同功能:针对每个所需相同行为的不同类型,一次又一次地实现它,做了许多重复的工作,会犯同一个错误;还会舍弃复杂但更好用的算法:因为复杂算法通常都趋向于引入更多的错误。继承基类:把通用代码放在一个诸如Object或者void*的公共基础类里面。借助公共基类来编写通用代码,将失去类型检查这个优点。另外,对于以后实现的许多类,都必须继承自某个特定的基类,这会令代码的维护更加困难。使用特殊的预处理程序:使用了一个诸如C或C++预处理器原创 2022-04-20 18:01:48 · 756 阅读 · 0 评论 -
C++内存模型与名称空间
C++内存模型与名称空间主要内容单独编译存储持续性、作用域、链接性定位(placement)new运算符名称空间单独编译程序文件结构头文件:包含结构声明和使用这些结构的函数的原型函数原型使用#define或const定义的符号常量结构声明类声明模板声明内联函数源代码文件:包含与结构有关的函数的代码源代码文件:包含调用与结构相关的函数的代码注意:<myhead.h>代表在标准头文件的目录中查找;包含自定义头文件,使用"myhead.h",代表在原创 2022-04-17 21:25:33 · 86 阅读 · 0 评论 -
STL函数库
STLvector函数成员函数功能begin()返回指向容器中第一个元素的迭代器。end()返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。rbegin()返回指向最后一个元素的迭代器。rend()返回指向第一个元素所在位置前一个位置的迭代器。cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。cend()和 end() 功能相同,只不过在其基础上,原创 2022-04-14 10:50:12 · 769 阅读 · 0 评论 -
C++ 智能指针
简介:C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。7 种智能指针:std::auto_ptrstd::auto_ptr 可用来管理单个对象的堆内存,但是,请注意如下几点:(1)尽量不要使用“operator=”。如...转载 2020-04-14 15:56:56 · 96 阅读 · 0 评论