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::stack
,std::queue
。它们本身不是容器。每个都依赖一个真实的容器来存储东西。在某些casual conversations 中,人们使用非正式名词短语“backing container”来表示容器适配器后面的实际容器。
那么,哪些容器可以是所谓的“后备容器”,哪些不能呢?这取决于容器适配器。比如std::stack
可以被vector、deque和list支持;但是std::queue
只能由deque和list支持。
【讨论】:
不错。简洁明了并解释了 OP 在通过自己的网络搜索找到权威答案时可能遇到的问题。以上是关于vector 可以成为 C++ 中队列的容器吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C++ 常用 stl容器(vector向量,stack栈,queue队列,deque双向队列,map,set)
小白学习C++ 教程二十一C++ 中的STL容器Arrays和vector