设计模式,就叫做适配器模式。
怎么理解这个适配器呢?
1.适配器底层是没有自己的数据结构的,它是另一个容器的封装,他的方法全部是底层依赖的容器进行实现的。
2.没有实现自己的迭代器。
容器适配器分别有:stack、queue、priority_queue
他们的方法都是根据底层的容器决定的。
其中,queue和stack底层依赖的是deque,而priority_queue依赖的是vector。
queue和stack底层依赖的是deque理由:
1.vector的内存使用效率太低了,没有的deque好
2.对于queue来说,我们需要支持尾部插入,头部删除,显然deque的效率更高。
3.vector需要连续的内存,而deque只需要分段的内存。
priority_queue依赖的是vector 理由:
底层默认把数据组成一个大顶堆,显然我们需要一个连续的内存才能方便优先级队列的输出,选择数组再合适不过了。