使用双链表实现std :: stack吗?

时间:2016-02-16 21:43:06

标签: c++ stl linked-list stack doubly-linked-list

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

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

无论哪种方式,我都可能会使用STL版本(没有浪费精力),但std::stack真的浪费了这样的记忆吗?

1 个答案:

答案 0 :(得分:6)

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

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

使用std::vector支持可以节省少量内存,但可能会产生性能损失。