STL stack和queue适配器

一、配接器和容器的区别

适配器是以容器为底层接口封装的,比如stack和queue都是配接器,因为他们都是在deque或者list容器的基础上,进一步封装,形成自己的特性。而deque和list则是完全不依靠其他容器,自己独立实现的。

二、stack

stack特征:先进后出,并且只有一个出口,并且无法遍历数据结构中的元素。结构类似下图:
STL stack和queue适配器_第1张图片

  • stack默认是用deque实现的(也可以使用list),也就是堵住deque的一端。
  • stack没有迭代器,因为stack无法遍历元素
  • stack只有新增元素,拿出顶端元素等简单操作。

三、queue

queue特征:先进先出,只能从一端进一端出,同样无法遍历元素,结构类似下图:
STL stack和queue适配器_第2张图片

  • stack默认是用deque实现的(也可以使用list),也就是堵住deque的一端的插入,堵住另一端的取出。
  • stack没有迭代器,因为stack无法遍历元素。

你可能感兴趣的:(STL源码解析)