【STL】STL入门(9)
何为STL
STL(Standard Template Library,标准模板库)是C++标准库的一部分,是用C++ Template(模板)机制来表达泛型的库。
模板-》例如:函数模板-》目标用于扩展函数的使用场景。
泛型-》是指非特定类型(特定类型:int 、float 、指针、数组、结构体、类等等)-》一个瓶子如果只能用于装水,那么用途大大受限,理所当然应该能够装水、装油、装酒等等。
STL就是解决这样的 “瓶子” 问题——不依赖于数据结构,将算法与数据结构分离,得到极大的弹性。它包括六大组件:
- 容器(Container)
- 算法(Algorithm)
- 迭代器(Iterator)
- 仿函数(Function object)
- 适配器(Adaptor)
- 空间配制器(allocator)
其中前面三个是重点,值得注意的是,并非 ACMer 才会使用它,往往在解决实际问题中,STL能够发挥很大的作用。
怎么使用STL
包含命名空间: using namespace std;
包含指定的头文件:
STL组件 | 相应头文件 |
algorithm | #include <algorithm> 算法 |
vector | #include <vector> 向量 |
list | #include <list> 双向链表 |
queue | #include <queue> 队列 |
deque | #include <deque> 双向队列 |
priority_queue | #include <queue> 优先队列 |
stack | #include <stack> 栈 |
set | #include <set> 集合 |
map | #include <map> 映射 |
multiset | #include <set> 多重集合 |
multimap | #include <map> 多重映射 |