如果有如下定义: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 关注
- 972 浏览
添加回答
举报
0/150
提交
取消