std :: stack如何在封面下组织存储,它以什么样的结构分配存储?它是否像矢量继续记忆?或者它就像列表?
答案 0 :(得分:4)
它使用作为第二个模板参数传递的数据结构,默认为std::deque
。
您可以传递任何Container类,使其满足以下要求:
用于存储元素的基础容器的类型。容器必须满足 SequenceContainer 的要求。此外,它必须提供以下通常语义的函数:
- 背面()
- 的push_back()
- pop_back()
标准容器
std::vector
,std::deque
和std::list satisfy
这些要求。
答案 1 :(得分:3)
stack是容器适配器。它可以在任何容器上工作,该容器将在模板参数中指向,默认为std::deque
。
答案 2 :(得分:2)
documentation显然有答案:
堆栈实现为容器适配器,它们是类 使用特定容器类的封装对象作为其 底层容器,提供一组特定的成员函数 访问其元素。
.........................
标准容器类vector,deque和list满足这些要求 要求。默认情况下,如果没有为a指定容器类 特定的堆栈类实例化,标准容器 deque 是 使用