更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 iterator iterator.h stl_iterator.h stl_iterator_base.h 2 输入迭代器 2.1 iterator的种类 在STL中,迭代器分为输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭 ...
分类:
其他好文 时间:
2021-02-26 13:30:41
阅读次数:
0
更多精彩内容,请关注微信公众号:后端技术小屋 traits(译作萃取)是C++中一种特殊的编程技法,它是模板元编程最直接的用例之一。通过traits,可以抽取模板入参类型的各种属性。接下来我们通过STL中最常见的几种traits举例说明。 1 __type_traits:trivial判定 __ty ...
分类:
其他好文 时间:
2021-02-26 13:30:23
阅读次数:
0
更多精彩内容,请关注微信公众号:后端技术小屋 1 相关头文件 bitset 2 bitset bitset中STL中用于表示位图的容器,它支持读写特定bit、从整数或字符串生成bitset对象。bitset大小通过模板参数指定,一旦编译器确定便无法变更,这一点与vector<bool>有差异。 2. ...
分类:
其他好文 时间:
2021-02-26 13:29:10
阅读次数:
0
参照自文档http://www.cplusplus.com/reference/array/,教程http://c.biancheng.net/view/6688.html,和书籍《STL源码剖析》(侯捷) 定义: template < class T, class Alloc = allocato ...
分类:
其他好文 时间:
2020-11-19 12:34:47
阅读次数:
6
C++内存配置操作和释放操作如下: 1 class Foo{...}; 2 Foo* pf=new Foo; //配置内存,然后构造对象 3 delete pf; //将对象析构,然后释放内存 内存配置操作由 alloc:allocate() 负责,内存释放操作由 alloc:deallocate( ...
分类:
其他好文 时间:
2020-11-07 17:27:54
阅读次数:
21
Intro 《STL源码剖析》用来了解原理性的设计没什么问题,但是这本书实在太老,所有源码基于GNU2.9;现在语言的发展飞快,而且很多地方都是考虑兼容性等因素,设计非常复杂,也并不高效,我没有时间去搞明白所有实现,更没有时间实现标准库,所以只学了一小半就停了。 六大组件 容器、算法、分配器、迭代器 ...
分类:
其他好文 时间:
2020-07-03 10:44:13
阅读次数:
62
前言: 本文总结概括SGI STL源码中二级配置器的工作方式,主要是学习内存池+16条链表的内存分配方式。 无论一级配置器还是二级配置器,统一的接口如下: //其中Alloc可能是一级配置器,也有可能是二级配置器; //这个类的作用其实就是单纯地转给一级或者二级配置器调用; template<cla ...
分类:
其他好文 时间:
2020-05-03 20:41:16
阅读次数:
56
Deque 简介 deque是“double—ended queue”的缩写,和vector一样都是STL的容器,deque 是双端数组,而 vector 是单端的。 deque 在接口上和 vector 非常相似,在许多操作的地方可以直接替换。 deque 可以随机存取元素(支持索引值直接存取,用 ...
分类:
编程语言 时间:
2020-02-20 17:12:44
阅读次数:
79
关于序列容器就讲这么多了 slist stack queue后面就不再写 stack 和 queue 没有迭代器 底层实现也就是list slist单向list 在此,我总结了,vector,list ,deque使用区别: 1 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector ...
分类:
编程语言 时间:
2020-02-20 16:52:26
阅读次数:
73
前言 ——本文整理自《STL源码解析》 虽然源码解析的代码比较老但是核心思想并没有太多变化并且直接看源码有太多细节~~我又看不懂最新的~~。 简介 sort接受两个 RandomAccessIterators (随机存储迭代器),然后将区间内的所有元素以渐増的方式由小到大重新排列,第二个版本允许用户 ...
分类:
其他好文 时间:
2020-01-26 00:53:50
阅读次数:
95