作者holymars ()
看板C_and_CPP
標題[問題] 在STL容器中增加元素的方法
時間Wed Sep 9 14:20:05 2009
有個STL容器
std::list<T> my_list;
要在容器最後面新增一個元素的時侯,下面兩種方法哪一種比較有效率呢..
1.
T temp;
// 對temp的內容操作..
my_list.push_back(temp);
2.
my_list.resize(my_list.size() + 1);
T& temp = my_list.back();
// 對temp的內容操作..
之前一直習慣的寫法都是1.
但是2.的作法好像少呼叫一次copy constructor
有人對這兩種作法的效率問題作過實際的測試嗎 @ @?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.15.163
→ akasan:2感覺很不直觀, 基於日後好維護寫1吧 09/09 14:46
→ holymars:但是如果T的容量很大,效率問題就會浮現吧? 09/09 14:52
→ holymars:除非把容器設計成list<shared_ptr<T> >..@@ 09/09 14:52
推 legnaleurc:2並沒有比較好吧.... 09/09 15:50
→ akasan:不要過早最佳化...真的效能不夠profile後再說吧 09/09 16:13
→ tinlans:不要浪費時間,正常的插入方式要是慢的話早就被罵翻了。 09/10 03:02