标准模板库STL(Standard Template Library)
STL可分为
容器(containers)
迭代器(iterators)
算法(algorithms)
空间配置器(allocator)
配接器(adapters)
仿函数(functors)
六个部分
STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory.h>、<numeric>、<queue>、<set>、<stack>和<utility>
序列式容器
向量(vector) : 连续存储的元素
列表(list) :由节点组成的双向链表,每个结点包含着一个元素
双端队列(deque) :连续存储的指向不同元素的指针所组成的数组
适配器容器
栈(stack) :后进先出(LIFO)的值的排列
队列(queue):先进先出(FIFO)的值的排列
优先队列(priority_queue):元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列
关联式容器
集合(set) :由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素队的谓词排列,没有两个不同的元素能够拥有相同的次序
多重集合(multiset) :允许存在两个次序相等的元素的集合
映射(map): 由{键,值}对组成的集合,以某种作用于键对上的谓词排列
多重映射(multimap) :允许键对有相等的次序的映射
对(pair) :和map类似,但只有一对键值 <utility>
智能指针(auto_ptr) :将一个用new开辟内存的指针赋给auto_ptr,会自动回收空间 <memory>
注:
vector 的底层为顺序表(数组)
list 的底层为双向链表
deque 的底层为循环队列
set 的底层为红黑树
hash_set 的底层为哈希表
可使用#inlcude<bits/stdc++.h>包括所有头文件