【问题标题】:std::vector emplace_back vs std::deque push_back?std::vector emplace_back vs std::deque push_back?
【发布时间】:2015-01-15 07:13:02
【问题描述】:

我有一组物品,我将它们推回容器的末端并弹回。以此目的, 我没有使用 std::stack 因为 std::stack 已经在里面使用了 std::deque 。所以我使用 std::vector 而不是 push_back,而是使用 emplace_back,因为我有多个参数。

我想知道是否值得切换到 std::deque 来提高性能?

【问题讨论】:

  • 这真的是瓶颈吗?我会选择最清楚地表明意图的那个。此外,向量与缓存一样友好,这使其作为标准容器具有相当高的性能。

标签: c++ c++11 vector stack queue


【解决方案1】:

它是否会提高性能在很大程度上取决于您的使用模式:您推送的次数、弹出的频率、向量重新分配期间元素复制(或移动)的成本等等等等。如果不看具体细节,就没有办法说任何确定的东西。试一试,分析一下,看看哪一个效果更好。

顺便说一句,您可以指定 std::stack 将在后台使用哪种容器类型。你也可以试试std::list

【讨论】:

    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 2019-05-22
    • 2021-06-02
    • 2012-03-07
    • 2017-01-12
    • 1970-01-01
    • 2015-05-19
    • 2013-10-15
    相关资源
    最近更新 更多