2013-04-12 60 views
4

只是一個簡單的問題 - 哪一個更好用於將字符串添加到vector<string>back_inserterpush_back的末尾?主要是,它工作更快(我正在處理大量數據,所以邊際差異實際上很重要),主要區別是什麼?Back_inserter或push_back

+2

爲什麼不自己描述它? – taocp

+1

這兩個版本的時間,並看看你自己。 – NPE

+0

它們不具有可比性:D – Maroun

回答

8

這兩者不相等。例如,當您需要將輸入迭代器傳遞給算法時,可以使用std::back_inserter。在這種情況下,std::vector<std::string>::push_back不是一個選項。例如

std::vector<std::string> a(100, "Hello, World"); 
std::vector<std::string> b; 
std::copy(a.begin(), a.end(), std::back_inserter(b));