gpt4 book ai didi

c++ - 在现代C++中,介入式容器是否仍比非介入式容器具有性能优势?

转载 作者:行者123 更新时间:2023-12-03 06:58:04 26 4
gpt4 key购买 nike

与现代C++中的非侵入式标准(Boost.Intrusive)容器相比,std::容器是否仍具有性能优势(带有移动语义,emplace_back等)?

最佳答案

是的,即使将移动语义与STL容器一起使用,侵入式容器仍具有许多优点。特别是,内存局部性仍可能会更好,这在某些情况下可以带来很大的性能提升。同样,迭代器仍然可以大大受益,并且避免任何异常开销可以加快插入/删除操作。

考虑Boost引用的Intrusive and non-intrusive containers部分中的表19.1。这些优势中的大多数可能仍然存在,例如:

  • 插入/删除时间
  • 内存位置
  • 异常(exception)保证
  • 从值
  • 计算迭代器
  • 内存使用

  • Boost文档的 detailed performance metrics显示了在不同情况下各种操作的相对性能。如果您考虑其中哪一个主要不受分配影响,那么仍有很大的潜力。

    当然,最终,性能和最优性问题将主要取决于您的特定应用程序,因此不建议对“最佳”或“最快”方法进行概括性说明。分析您的特定代码并评估涉及额外复杂性的折衷办法无可替代。

    关于c++ - 在现代C++中,介入式容器是否仍比非介入式容器具有性能优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59571435/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com