欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611
STL源码剖析之Stack,queue容器【2013.11.25】
SGI STL中 stack和queue 不是严格的容器,而只能算是一种应用与容器的配接器(配接器可以分为容器配接器,迭代器配接器,仿函数配接器)
stack和queue底层 默认使用的容器都是 deque,只是把deque的部分功能屏蔽,使用部分功能,实现更具体的容器类型。
stack:栈,实现先进后出的,单端插入删除
queue:队列,实现先进先出,一端插入,一端删除
stack和queue是一种配接器实现,那么就可以指定自己的容器来实现。条件是需要实现stack或queue使用的接口,如
根据stack内部实现调用到的容器接口,对应实现功能。就可以做到用自己的容器配接出stack或queue了
如List是符合配接成stack的容器,那么就可以指定LIST作为STACK的底层容器了,代码如下:
【1】因为stack和queue没有遍历 搜索功能,所以他们没有迭代器
【2】没有迭代器,也只有pop的时候用对应元素类型接收。
【3】没有迭代器,也没有迭代器失效问题
欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611