cpp拾遗——STL
1. 简介
STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),
容器和算法通过迭代器可以进行无缝地连接。
STL详细的说六大组件
–容器(Container)
–算法(Algorithm)
–迭代器(Iterator)
–仿函数(Function object)
–适配器(Adaptor)
–空间配制器(allocator)
只有能够熟练使用STL的程序员,才是好的C++程序员,
STL是C++程序员的一项不可或缺的基本技能。
2. 容器
用于管理元素。
容器部分主要由头文 件,
| 数据结构 | 描述 | 实现头文件 |
|---|---|---|
| 向量(vector) | 连续存储的元素 | |
| 列表(list) | 由节点组成的双向链表,每个结点包含着一个元素 | |
| 双队列(deque) | 连续存储的指向不同元素的指针所组成的数组 | |
| 集合(set) | 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序 | |
| 多重集合(multiset) | 允许存在两个次序相等的元素的集合 | |
| 栈(stack) | 后进先出的值的排列 | |
| 队列(queue) | 先进先出的执的排列 | |
| 优先队列(priority_queue) | 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 | |
| 映射(map) | 由{键,值}对组成的集合,以某种作用于键对上的谓词排列 | |
| 多重映射(multimap) | 允许键对有相等的次序的映射 |
3. 迭代器
迭代器在STL中用来将算法和容器联系起来,起着一种黏和剂的作用。几乎STL提供的所有算法都是通 过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。
头文件
而对于
4. 算法
头文件,
是所有STL头文件中最大的一个(尽管它很好理解),它是由一大堆模版函数组成的,可以认为每个函数在很大程度上 都是独立的,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、移除、反转、排序、合并等等。