【问题标题】:Array based stack memory efficiency基于数组的堆栈内存效率
【发布时间】:2018-09-29 16:07:44
【问题描述】:

我知道堆栈可以通过动态数组(例如c++中的std::vector)或链表来实现。

当栈基于动态数组实现时,容量会自动增长,新项目被压入栈中。 我想知道当从堆栈中弹出项目时,数组的容量会减少吗?

在某些应用程序中(例如路径搜索算法),许多项目会先被压入堆栈然后弹出。当堆栈为空时程序结束。如果数组的容量没有减少,当我的程序结束时,我会有一个很大的空数组。

【问题讨论】:

  • 这取决于实现

标签: vector stack


【解决方案1】:

std::stack 使用 std::deque 作为容器。它根据需要调整大小,向上和向下。

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 2010-12-14
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多