如果有如下定義:vector<string> svec1(10);vector<string> svec2(24);svec1.swap(svec2);執行后,svec1中有24個元素,但svec1中原來只有10個元素,系統原來給svec1分配的內存空間可能不足保存24個元素,當不足時,不是要為svec1重新分配內存空間嗎?(雖然在交換之前,系統給svec1分配大于可以保存10個元素的內存空間,但有vector<string> svec1(10);vector<string> svec2(1000);svec1.swap(svec2);時,迭代器還是不會失效。為什么會這樣?swap工作的原理究竟是怎樣的?
- 2 回答
- 0 關注
- 1001 瀏覽
添加回答
舉報
0/150
提交
取消