一、基础知识
栈与队列的内部实现机制
队列是先进先出,栈是先进后出
四个关于栈的问题
1、C++中stack 是容器么?
栈和队列是STL(C++标准库)里面的两个数据结构
STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)
STL 队列也不被归类为容器,而被归类为container adapter( 容器适配器)
2、我们使用的stack是属于哪个版本的STL?
栈和队列是SGI STL里面的数据结构
三个最为普遍的STL版本:
HP STL 其他版本的C++ STL,一般是以HP STL为蓝本实现出来的,HP STL是C++ STL的第一个实现版本,而且开放源代码。
P.J.Plauger STL 由P.J.Plauger参照HP STL实现出来的,被Visual C++编译器所采用,不是开源的。
SGI STL 由Silicon Graphics Computer Systems公司参照HP STL实现,被Linux的C++编译器GCC所采用,SGI STL是开源软件,源码可读性甚高。
3、我们使用的STL中stack是如何实现的?
栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。