【问题标题】:Standard vector's and boost vector's push_back: which is faster?标准向量和提升向量的 push_back:哪个更快?
【发布时间】:2015-06-21 22:00:28
【问题描述】:

boost::container::vector 的性能与 std::vector 相比如何,哪些因素对其有显着影响?

特别是,我听说 std::vector push_back 比 vector[] 慢。这与 boost 相比如何?

【问题讨论】:

  • 您的预期用途的基准测试结果是什么?
  • 我听说 std::vector push_back 比 vector[] 慢 这两件事根本不做同样的事情,比较如何是没有意义的他们很快。
  • std::vector 在调试版本中可能会更慢(尤其是在使用 microsoft (dinkumware) 时)。在发布版本中,应该没有区别。

标签: c++ boost stdvector


【解决方案1】:

矢量是一个简单的概念。有许多 std 实现、一个 boost 实现、一个 MFC 实现和十万个其他实现。并且它们在摘要中应该都非常接近相同的速度。

在所有这些中,比较 push_backoperator[] 几乎没有意义,因为它们做的事情 100% 不同。检查容量,可能重新分配/移动,在背面创建一个新元素。另一个只是访问一个已经存在的元素。然而,由于operator[] 实际上并没有任何事情,它总是会更快。

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 2020-11-20
    • 2013-03-28
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多