STL源码剖析
文章平均质量分 89
RaKiRaKiRa
Shoot low, Aim high!
展开
-
STL学习笔记(1)空间配置器 allocator
1 简述 STL其他组件都是存放在空间配置器配置的空间中,此处空间可以是内存,也可以是磁盘或其他辅助存储介质。 allocator负责内存的分配和释放,以及负责对象的构造和析构,两个操作时分开的。 每个容器都已经制定了默认的空间配置器Alloc,如下图所示。若要使用自己的空间配置器则必须vector<int,my_alloc> mv;2 标原创 2018-10-11 19:35:34 · 288 阅读 · 0 评论 -
STL学习笔记(0)可能困惑的C++语法
1. __STL_STATIC_TEMPLATE_MEMBER_BUG如果编译器无法处理static member of template classes(模板类静态成员)就定义。即对于模板类中,模板类型不同时的静态变量不同。template <typename T>class test{public: static int _data;}int test<i...原创 2018-10-10 15:27:51 · 1170 阅读 · 1 评论 -
STL学习笔记(2)迭代器(iterators)概念与traits编程技法
0:STL思想:将数据容器(containers)和算法(algorithms)分开,再撮合在一起。迭代器(iterator,扮演粘胶角色 ):提供一种方法,使之能够依序寻访某个聚合物(容器)所含的各个元素,而又无需暴漏该聚合物的内部表述方式。1. 迭代器(iterator)是一种smart pointer(智能指针)所以迭代器最重要的工作是对 operator*和对operator-&g...原创 2018-10-17 19:33:51 · 196 阅读 · 0 评论 -
(未完成)STL学习笔记(3)序列式容器 (Sequence Containers)
1. vectorvector与数组array十分相似,但array是静态空间,而vector是动态空间,可以通过内部机制自行扩充空间,具有很好的灵活性。其实现的关键在于对大小的控制和重新配置时的数据移动效率。vector的型别定义如下:template <class T, class Alloc = alloc>class vector{// ...public: ...原创 2018-10-22 19:06:12 · 210 阅读 · 0 评论