概述:
适配器是标准库中通用的概念,包括容器适配器、函数适配器和迭代器适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。标准库提供了三种顺序容器适配器:queue、priority_queue和stack。
容器适配器类型 |
关联的容器类型 |
stack |
vector、list、deque |
queue(push_front运算) |
list、deque |
priority_queue(随机访问) |
vector、deque |
注:默认的stack和queue都基于deque容器实现,而priority_queue则在vector容器上实现。
栈适配器提供的所有操作:
s.empty() 如果栈为空,则返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 删除栈顶元素,但不返回其值
s.top() 返回栈顶元素的值,但不删除该元素
s.push(item) 在栈顶压入新元素
队列和优先级队列提供的所有操作:
q.empty() 如果队列为空,则返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队首元素,但不返回其值
q.front() 返回队首元素的值,但不删除该元素(只适用于队列)
q.back() 返回队尾元素的值,但不删除该元素(只适用于队列)
q.top() 返回具有最高优先级的元素值,但不删除该元素(只适用于优先级队列)
q.push(item) 对于queue,在队尾插入一个新元素
对于priority_queue,在基于优先级的适当位置插入新元素