STL (Standard Template Library)标准模板库,它是C++编程中一个很重要的分支。
我们可以人为的把它分为以下三个部分:
算法:包含的头文件有<algorithm>,<numeric>和<functional>。
容器:包含的头文件有<vector>,<list>,<deque>,<set>,<map>,<stack>和<queue>。
迭代器:包含的头文件有<utility>,<iterator>和<memory>。
下面着重讲下容器的一些简单操作
vector的相关操作:
有了第一个vector的讲解,后面的deque和list就好理解了
双端队列deque的操作:
链表list的相关操作
集合set
映射map
更多关于容器的操作,可以查看MSDN.....
下面是关于容器的一些描述
数据结构 | 描述 | 实现头文件 |
向量(vector) | 连续存储的元素 | <vector> |
列表(list) | 由节点组成的双向链表,每个结点包含着一个元素 | <list> |
双队列(deque) | 连续存储的指向不同元素的指针所组成的数组 | <deque> |
集合(set) | 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序 | <set> |
多重集合(multiset) | 允许存在两个次序相等的元素的集合 | <set> |
栈(stack) | 后进先出的值的排列 | <stack> |
队列(queue) | 先进先出的值的排列 | <queue> |
优先队列(priority_queue) | 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 | <queue> |
映射(map) | 由{键,值}对组成的集合,以某种作用于键对上的谓词排列 | <map> |
多重映射(multimap) | 允许键对有相等的次序的映射 | <map> |