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