STL 六大部件:
- 容器(Containers)
- 分配器(Allocators)
- 算法(Algorithms)
- 迭代器(Iterators)
- 适配器(Adapters)
- 仿函数(Functors)
一个例子:
1 |
|
前闭后开区间:begin 指向第一个元素,end 指向最后一个元素的下一个位置。
遍历容器:1
2
3
4Container<T> c;
Container<T>::iterator ite = c.begin();
for (; ite != c.end(); ++ite) {}
C++11带来的新方法:
1 | // for ( decl : coll ) { |
容器——结构与分类
序列型容器(Sequence Containers):
- Array(C++11)
- Vector
- Deque
- List
- Forward-List
关联型容器(Associative Containers):几乎所有编译器支持的底层实现都是红黑树
- Set/Multiset
- Map/Multimap
无序容器(Unordered Containers)从C++11开始:底层实现是HashTable:Separate Chaining
- Unordered Set/Multiset
- Unordered Map/Multimap