作者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
1F:→ akasan:2感觉很不直观, 基於日後好维护写1吧 09/09 14:46
2F:→ holymars:但是如果T的容量很大,效率问题就会浮现吧? 09/09 14:52
3F:→ holymars:除非把容器设计成list<shared_ptr<T> >..@@ 09/09 14:52
4F:推 legnaleurc:2并没有比较好吧.... 09/09 15:50
5F:→ akasan:不要过早最佳化...真的效能不够profile後再说吧 09/09 16:13
6F:→ tinlans:不要浪费时间,正常的插入方式要是慢的话早就被骂翻了。 09/10 03:02