我曾经有一位教授告诉我,std::stack
通常是使用双链表实现的,这将是多余的,因为你只需要访问顶部。
他的结论是,使用std::vector
或单个链表实现的用户定义的堆栈结构将节省内存空间。
无论哪种方式,我都可能使用STL版本(浪费能源没有用(,但是std::stack
真的那样浪费内存吗?
std::stack
是一个容器适配器。该实现使用另一种容器类型(定义为模板参数(进行存储。
默认情况下,它使用 std::deque
,这不完全是一个双链表,尽管可以使用 std::list
。
通过用std::vector
支持它可以节省少量内存,但可能会降低性能成本。