是使用双链表实现的 std::stack

Is std::stack implemented using a double linked list?

本文关键字:std 实现 stack 链表      更新时间:2023-10-16

我曾经有一位教授告诉我,std::stack通常是使用双链表实现的,这将是多余的,因为你只需要访问顶部。

他的结论是,使用std::vector或单个链表实现的用户定义的堆栈结构将节省内存空间。

无论哪种方式,我都可能使用STL版本(浪费能源没有用(,但是std::stack真的那样浪费内存吗?

std::stack是一个容器适配器。该实现使用另一种容器类型(定义为模板参数(进行存储。

默认情况下,它使用 std::deque ,这不完全是一个双链表,尽管可以使用 std::list

通过用std::vector支持它可以节省少量内存,但可能会降低性能成本。