vector 可以成为 C++ 中队列的容器吗? [关闭]

Posted

技术标签:

【中文标题】vector 可以成为 C++ 中队列的容器吗? [关闭]【英文标题】:Can vector be a container for queue in c++? [closed] 【发布时间】:2017-12-09 20:50:40 【问题描述】:

vector不能作为队列的容器适配器是什么原因?

我们非常感谢您的意见。

【问题讨论】:

后备容器的定义是什么? @Prith 我认为他的意思是一个具有 push_back 或 back 方法的容器。:) @VladfromMoscow 啊哈 您在哪里听到/看到过这个词?你能提供报价吗? 嗯,“支持容器”是指支持在其末端添加元素的容器(类似于push_back),它们都可以是支持容器。 【参考方案1】:

请注意,在提交此答案后,问题发生了微妙但显着的变化。


“后备容器”在 C++ 中并不是一个专业术语。它是一个由形容词“backing”和名词“container”组成的随意构成的名词短语。

“container”显然是一个 STL 容器。

“backing”是动词“back”的现在分词,其中“to back”表示支持。动词的现在分词可以用作形容词。 “backing”修饰“container”,表示容器正在支撑某物。

在 STL 中,有容器适配器,例如std::stackstd::queue。它们本身不是容器。每个都依赖一个真实的容器来存储东西。在某些casual conversations 中,人们使用非正式名词短语“backing container”来表示容器适配器后面的实际容器。

那么,哪些容器可以是所谓的“后备容器”,哪些不能呢?这取决于容器适配器。比如std::stack可以被vector、deque和list支持;但是std::queue只能由deque和list支持。

【讨论】:

不错。简洁明了并解释了 OP 在通过自己的网络搜索找到权威答案时可能遇到的问题。

以上是关于vector 可以成为 C++ 中队列的容器吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

c++中容器是啥概念啊?

C++ 常用 stl容器(vector向量,stack栈,queue队列,deque双向队列,map,set)

STL中vector,list,deque和map的区别

小白学习C++ 教程二十一C++ 中的STL容器Arrays和vector

小白学习C++ 教程二十一C++ 中的STL容器Arrays和vector

C++ STL 之 deque