容器适配器
本文最后更新于:2022年3月19日 凌晨
容器适配器提供顺序容器的不同接口
std::stack#
- 定义于头文件
<stack>
std::stack
类是容器适配器,它给予程序员栈的功能——特别是 FILO (先进后出)数据结构。
该类模板表现为底层容器的包装器——只提供特定函数集合。栈从被称作栈顶的容器尾部推弹元素。
元素访问 | |
---|---|
top | 访问栈顶元素 (公开成员函数) |
容量 | |
empty | 检查底层容器是否为空 (公开成员函数) |
size | 返回容纳的元素数 (公开成员函数) |
修改器 | |
push | 向栈顶插入元素 (公开成员函数) |
emplace(C++11) | 在顶部原位构造元素 (公开成员函数) |
pop | 删除栈顶元素 (公开成员函数) |
swap(C++11) | 交换内容 (公开成员函数) |
std::queue#
- 适配一个容器以提供队列(FIFO 数据结构)
定义于头文件 <queue>
std::queue
类是容器适配器,它给予程序员队列的功能——尤其是 FIFO (先进先出)数据结构。
类模板表现为底层容器的包装器——只提供特定的函数集合。 queue 在底层容器尾端推入元素,从首端弹出元素。
元素访问 | |
---|---|
front | 访问第一个元素 (公开成员函数) |
back | 访问最后一个元素 (公开成员函数) |
容量 | |
empty | 检查底层容器是否为空 (公开成员函数) |
size | 返回容纳的元素数 (公开成员函数) |
修改器 | |
push | 向队列尾部插入元素 (公开成员函数) |
emplace(C++11) | 在尾部原位构造元素 (公开成员函数) |
pop | 删除首个元素 (公开成员函数) |
swap(C++11) | 交换内容 (公开成员函数) |
std::priority_queue#
- 定义于头文件
<queue>
priority_queue 是容器适配器,它提供常数时间的(默认)最大元素查找,对数代价的插入与释出。
可用用户提供的 Compare
更改顺序,例如,用 std::greater
用 priority_queue
工作类似管理某些随机访问容器中的堆,优势是不可能突然把堆非法化。
元素访问 | |
---|---|
top | 访问栈顶元素 (公开成员函数) |
容量 | |
empty | 检查底层容器是否为空 (公开成员函数) |
size | 返回容纳的元素数 (公开成员函数) |
修改器 | |
push | 插入元素,并对底层容器排序 (公开成员函数) |
emplace(C++11) | 原位构造元素并排序底层容器 (公开成员函数) |
pop | 删除队首元素 (公开成员函数) |
swap(C++11) | 交换内容 (公开成员函数) |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!