std::stack是用双向链表实现的吗?

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

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

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

不管怎样,反正我很可能会使用STL版本(不用浪费能源),但是std::stack真的那样浪费内存吗?

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

默认情况下,它使用 std::deque,这不完全是双向链表,但可以使用 std::list.

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