我目前正在制作一个使用C++向量的应用程序。C++ push_back vs插入vs emplace
我知道预优化是如何成为万恶的根源。
但我真的不禁好奇。
我将其他矢量的部分添加到另一个矢量中。
我们会说的载体将有一个大小永远的300
变化由于我一直追加到矢量
的到底是快做:
a.reserve(300);
a.insert(a.end(), b.begin(), b.end());
或者是否会更快地循环遍历我想追加的矢量,并分别在push_back
或emplace
之间单独添加每个项目(虽然仍在预先保留)。 (不确定哪个更快)
任何人都可以帮助我吗?
“有效STL”第5项:不想区间成员函数自己的单元素 – Cubbi 2013-02-21 18:19:57
去为更清晰的代码,用什么STL为您提供...不重复,除非你要。在大多数情况下重用代码将胜过这种简单操作的手工定制版本。这些功能在设计时考虑到了效率。 – eazar001 2013-02-21 18:22:32
'insert'可能更快,或者它可能差不多,但是(缺少一个不好的库实现)将永远不会比循环更糟糕。 – 2013-02-21 18:23:06