我目前正在製作一個使用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