看板 C_and_CPP 關於我們 聯絡資訊
有個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