版权声明:请注明转发出处 https://blog.csdn.net/mafucun1988/article/details/89578517
1. swap用来交换两个vector
vector<int> v1,v2;
for (int i = 0; i < 5;i++){
v1.push_back(i);
}
for (int i = 6; i < 10;i++){
v2.push_back(i);
}
v1.swap(v2);
2. swap也可以用来收缩vector空间
使用resize分配100个空间,clear后,再增加两个,实际只使用了2个空间。vector<int>(v).swap(v)。创建一个临时的vector,用临时vector和v交互,交换后v的空间变为2个。临时vector变成100.本语句执行完之后,临时vector销毁,也就完成了vector空间收缩。
vector<int> v;
v.resize(100);
cout << "容量:" << v.capacity() << endl;
cout << "大小:" << v.size() << endl;
v.clear();
v.push_back(2);
v.push_back(3);
cout << "容量:" << v.capacity() << endl;
cout << "大小:" << v.size() << endl;
vector<int>(v).swap(v);
cout << "容量:" << v.capacity() << endl;
cout << "大小:" << v.size() << endl;