std :: stack如何组织内部存储?

时间:2015-12-24 12:46:28

标签: c++ stack std

std :: stack如何在封面下组织存储,它以什么样的结构分配存储?它是否像矢量继续记忆?或者它就像列表?

3 个答案:

答案 0 :(得分:4)

它使用作为第二个模板参数传递的数据结构,默认为std::deque

您可以传递任何Container类,使其满足以下要求:

  

用于存储元素的基础容器的类型。容器必须满足 SequenceContainer 的要求。此外,它必须提供以下通常语义的函数:

     
      
  • 背面()
  •   
  • 的push_back()
  •   
  • pop_back()
  •   
     

标准容器std::vectorstd::dequestd::list satisfy这些要求。

Source

答案 1 :(得分:3)

stack是容器适配器。它可以在任何容器上工作,该容器将在模板参数中指向,默认为std::deque

答案 2 :(得分:2)

documentation显然有答案:

  

堆栈实现为容器适配器,它们是类   使用特定容器类的封装对象作为其   底层容器,提供一组特定的成员函数   访问其元素。

     

.........................

     

标准容器类vector,deque和list满足这些要求   要求。默认情况下,如果没有为a指定容器类   特定的堆栈类实例化,标准容器 deque 是   使用