std :: vector emplace_back vs std :: deque push_back?

时间:2014-11-18 07:09:20

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

我有一组物品,我在容器的末端向后推并弹出。以此目的, 我没有使用std :: stack,因为std :: stack已经在内部使用std :: deque了。所以我使用std :: vector<>而不是push_back,我使用emplace_back,因为我有多个参数。

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

1 个答案:

答案 0 :(得分:1)

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

顺便说一句,您可以指定哪种容器类型std::stack将在引擎盖下使用。您还可以std::list尝试。