基于阵列的堆栈内存效率



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

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

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

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

最新更新