C++ STL partI
1.基础概念
STL 标准模板库 | 泛型编程思想
参考:
2.六大部件
- 容器 Containers
- 分配器 Allocators
- 算法 Algorithms
- 迭代器 Iterators
- 适配器 Adapters
- 仿函数 Functors
结构图如下:
示范代码:
1 |
|
容器遍历:
1 |
|
3.各种容器
3.1 顺序容器
名字 | 实现 | 特点 |
---|---|---|
vector | 顺序存储 | 可变长数组,仅支持尾插 |
stack | 顺序存储 | 栈,先进后出,仅一端压入弹出 |
deque | 顺序存储 | 队列,先进先出,双端压入弹出 |
list | 链式存储 | 双向链表,双端插入移除 |
forward_list | 链式存储 | 单向链表,头部插入移除 |
3.2 关联容器
名字 | 实现 | 用法 | 特点 |
---|---|---|---|
unordered_set | hash_table | unordered_set |
不支持重复,查询速度快 |
unprdered_map | hash_table | unprdered_map<key, value> um; | 不支持重复,查询速度快 |
unordered_multiset | hash_table | unordered_multiset |
支持重复,查询速度快 |
unprdered_multimap | hash_table | unprdered_multimap<key, value> umm; | 支持重复,查询速度快 |
set | rb_tree | set |
不支持重复,有序,节省空间 |
map | rb_tree | map<key, value> m; | 不支持重复,有序,节省空间 |
multiset | rb_tree | multiset |
支持重复,有序,节省空间 |
multimap | rb_tree | multimap<key, value> mm; | 支持重复,有序,节省空间 |
注:hash_table实现的容器需要重载 == 运算符,而rb_tree实现的容器需要重载 < 运算符。
C++ STL partI
http://helloymf.github.io/2022/10/03/c-stl-parti/