帖子:http://topic.csdn.net/u/20090407/15/a3feb00f-774b-4c0f-90ab-8e0c84a8b6d4.html
关键点:
reserve是必须的
如果没有的话,push_back的之后,当内存不够了,就会有内存的重新分配和元素的拷贝。这是绝对很低效的。
如果 vector 的容量不够了,它会
1. 重新分配更多的空间(一般是增加 N/2,N为原容量)
2. 将现有vector中的数据逐个拷贝到新空间
3. 释放旧空间中的所有元素
4. vector 指向新空间
这样做很累的~
特别是要多次这么做时
如果一开始就分配足了,就不用做多次了
当然,楼主使用的例子甚小,基本可不用 reserve()