什么是adapter容器?
在C++ STL中,适配器容器(Container Adapters)是一种特殊的容器,它提供了特定的接口和行为,并在内部使用其他容器作为其底层数据结构。适配器容器通常改变了某个现有容器的接口以满足特定的需求。STL中包含三种适配器容器:
stack
:- 行为:后进先出(LIFO)。
- 底层容器:默认使用
deque
,但也可以用list
或vector
。 - 应用场景:用于解决需要后进先出访问元素的问题,如在递归算法、解析表达式和回溯算法中常用。
queue
:- 行为:先进先出(FIFO)。
- 底层容器:默认使用
deque
,但也可以用list
。 - 应用场景:适用于需要按顺序处理元素的场景,比如任务调度、缓冲处理等。
priority_queue
:- 行为:元素按优先级出列。
- 底层容器:通常使用
vector
并配合make_heap
、push_heap
和pop_heap
算法使用。 - 应用场景:适合于需要快速访问最“重要”元素的场合,比如调度系统中的任务优先级调度、图算法中的最短路径搜索等。