欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STL 源码剖析笔记

程序员文章站 2022-03-23 11:29:06
...

stack


    在vs2017的stl源文件中stack模板为:

template<class _Ty,class _Container = deque<_Ty> >
class stack{
    // LIFO queue implemented with a container
............

模板有两个参数,一个是储存的类型,另外一种是套用的接口容器类型,默认是deque(双端队列),我们可以手动配置为list,把stack改成list实现,因为在实现stack代码中使用的是stl容器接口(所以stack称为adapter(配接器)),而stl容器的接口一样,deque和list都具备实现stack所需要的接口。在实际使用时只需要在声明stack变量时指出list即可,如代码所示:

stack<int,list<int>> test;

 

扩展:queue和stack一模一样,同样可以用list