STL标准与泛型编程
1 认识版本,header,重要资源
- C++标准库主要是用模板,标准库大部分是STL(Standard Template Library),新式C header files,使用去掉
.h
,前面加上c
旧式的header的组件不被封装于namespace std - 标准库六大部件:分配器,迭代器(迭代器适配器),算法,容器(容器适配器),仿函数(仿函数适配器)
3 容器分类与各种测试
- 三类容器List是一个双向环状链表
- sequence containers,适合索引,排序,查找
- associative containers
- unordered containers,采用hash table
4 容器分类与各种测试(二)
- vector的增长是两倍的增长,string在vector中只是指针的大小vector容器有大小上限,
vector.data()
也是在容器非空时,获得第一个元素的地址
5 容器分类与各种测试(三)
- List自己有一个sort()函数
- forward_list没有push_back(),自己也有一个sort()
- gun c中存在一个slist,它和forward_list是一个东西,早期标准库不支持forward_list
- deque是由多个buffer指针构成,buffer之间需要逻辑上是连续的一个buffer中的元素大小固定,当一个buffer分配满了,则需要分配新的buffer,左右都是
- 关联容器,queue和stack内部就是一个deque,这两种容器其中没有自己的数据结构,它们是借用deque,所以它们是adpater
- queue
- stack