使用swap收缩vector空间

版权声明:请注明转发出处 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;

猜你喜欢

转载自blog.csdn.net/mafucun1988/article/details/89578517