IDE再分配 - Visual Studio 2008中时,Visual C++矢量确实每个的push_back
- 我有一个自定义类的Class1用拷贝构造函数给它。
- 我也有一个矢量
- 数据插入使用下面的代码
Class1* objClass1; vector<Class1> vClass1; for(int i=0;i<1000;i++) { objClass1 = new Class1(); vClass1.push_back(*objClass1); delete objClass1;
}
现在在每次插入,向量被重新分配和所有现有的内容都被复制到新的位置。例如,如果向量有5个元素,如果我插入第6之一,随着新一个沿前5个元素被复制到新的位置(我想通了由复制构造函数添加日志语句。)
使用储备(),然而,这并不如预期发生!我有以下问题
- 是否必须始终使用保留语句?
- 矢量是否做了重新分配每次我做一个的push_back时间;或者它发生,因为我调试?
在一个不相关的音符,它会更容易,更有效,只是'vClass1.push_back(1类());',没有任何的堆内存分配。 – doublep 2010-04-27 20:01:50