根据 Bjarne Stroustrup 的 slides来自他的 Going Native 2012 keynote , std::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/