深入探索标准模板库(STL)
1. 基于适配器的容器
基于适配器的容器有特定的实现方式和特点,具体如下表所示:
| 容器 | 实现方式 | 特点 |
| — | — | — |
| stack | 可实现为 vector、list 或 deque | 仅在一端进行插入(push)和移除(pop)操作 |
| queue | 可实现为 list 或 deque | 在一端插入(push),在另一端移除(pop) |
| priority queue | 可实现为 vector 或 deque | 在一端以随机顺序插入(push),在另一端以排序顺序移除(pop) |
在实例化这些类时,需要使用模板中的模板。例如,创建一个存储 int 类型的 stack 对象,从 deque 类实例化:
stack< deque<int> > aStak;
需要注意的是,两个右尖括号之间必须有一个空格,不能写成 stack<deque<int>> astak;
,因为编译器会将 >>
解释为运算符。
2. 算法
算法是对容器中的元素执行操作的函数。STL 中的算法是独立的模板函数,而非容器类的成员函数或友元函数。可以将它们应用于内置的 C++ 数组或自己创建的容器类(前提是该类包含某些基本函数)。以下是一些典型的 STL 算法及其用途:
| 算法 | 用途 |
| — | —