c++ - 应该弃用 std::list 吗?

标签 c++ performance vector containers doubly-linked-list

根据 Bjarne Stroustrup 的 slides来自他的 Going Native 2012 keynote , std::list 中的插入和删除在现代硬件上效率极低:

vector vs list

Vector beats list massively for insertion and deletion

如果确实如此,std::list 还剩下哪些用例?那么它不应该被弃用吗?

最佳答案

vector 和列表解决不同的问题。 List 保证迭代器在您插入和删除其他元素时永远不会失效。 Vector 不提供这种保证。

这不仅仅与性能有关。所以答案是否定的。不应弃用列表。

编辑除此之外,C++ 并不是专门为“现代硬件”设计的。它旨在用于比这更广泛的硬件。我是金融行业的一名程序员,我使用 C++,但嵌入式设备、可编程 Controller 、心肺机等其他领域也同样重要。 C++ 语言的设计不应特定领域的需求和特定类别硬件的性能。仅仅因为 可能不使用列表并不意味着它应该从语言中弃用。

关于c++ - 应该弃用 std::list 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779719/

相关文章:

c++ - Googletest:如何异步运行测试?

r - R 中的高效矩阵运算

javascript - Three.js - 对象出现在屏幕上的时间

c# - 对于一个只能包含唯一项目但在 99% 的时间里包含 0 或 1 个项目的列表,开销是否使 List 比 HashSet 更好?

c++ - 获取STL vector C++的地址

c++ - 如何将 vector::push_back()` 与结构一起使用?

c++ - 尝试使用初始化列表构造 `std::vector` 的问题

c++ - 错误 LNK2019 : unresolved external symbol (libJPEG compiling and linking)

c++ - 如何使用 POCO 库将更改写入 ".ini"文件?

c++ - "Declaration does not declare anything"和 "expected unqualified-id"