请大家回答:stack是标准容器吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请大家回答:stack是标准容器吗?相关的知识,希望对你有一定的参考价值。

请大家回答:stack是标准容器吗?
只要说出是不是,不需要说stack是容器适配器!
谢谢!

stack是一个适配器(adapter),或者叫配接器,没有自己的数据结构,只是修改了其他容器暴露给用户的接口。
它的底层可以是任意的符合条件的数据结构。默认的是vector,还可以指定list或deque
虽然C++98中归到了containers一章,但我个人觉得不能称之为容器(container),毕竟23.2.3一节的题目也是container adptor
参考技术A 是的。

只是这个容器也可以被称为适配器本回答被提问者采纳
参考技术B 是的
参见 iso14882
23.2 Sequence containers
Headers <array>, <deque>, <list>, <queue>, <stack>, and <vector>.
参考技术C 不是!

标准模板库中的栈(stack)

////C++数据结构与算法(第4版) Adam Drozdek 著  徐丹  吴伟敏<<清华大学出版社>>

  STL中的通用栈类实现为容器适配器:使用以指定方式运行的容器。栈容器不是重新创建的,它只是对已有容器做适当的调整。默认情况下,deque是底层容器,但是用户可以用下面的声明选择链表或向量:

  stack<int> stack1;  //默认为双端队列

  stack<int,vector<int>> stack2;  //向量

  stack<int,list<int>> stack3;  //链表

 

stack()  创建一个空栈

bool empty() const  如果栈为空,则返回true,否则返回false

void pop()  删除栈的栈顶元素

void push(const T& el)  将el插入栈的顶端

size_type size() const  返回栈中元素的数目

T&top()  返回栈顶元素

const T& top() const  返回栈顶元素

 

 

 

 

返回 C++ STL

以上是关于请大家回答:stack是标准容器吗?的主要内容,如果未能解决你的问题,请参考以下文章

C++标准模板库(STL)——stack常见用法详解

干货整理 | 容器是 DevOps 的必由之路——标准化带来的 DevOps(上)

标准容器至少两个参数

这些高频PHP面试题,你能回答出来吗?

工作中标准库容器的运用(游戏编程需求)

“堆叠”与“悬挂”分层图形绘制算法的标准名称?