C++ Vector 清空元素的方法

一、利用resize()函数

vector<int> sum(n,1);
sum.resize(0); //直接将向量重置

注意:resize()函数使用时不会改变向量已有元素的值,只会在扩大向量大小时填充元素。

vector<int> sum(n,0);
sum.resize(n+1,2); //只会将第n+1个元素变为2,其他不变。
sum.resize(n,1); //不会改变任何值,只是最后一个元素被删去。

二、利用clear()函数

vector<int> sum(3,1);
sum.clear(); //这里清空后依旧可以访问到原来的元素,表明这里的删除只是将指针移动到来开始位置,但并没有回收内存。

三、利用erase()函数

vector<int> sum(3,1);
//第一种:指定删除某个位置的元素,it为某个位置的迭代器,删除后所有后面的元素前移一个位置。
sum.erase(it); 
//第二种,删除某一段元素,区间是左闭右开,即删除的是[it1,it2),不包括it2指向的元素。
sum.erase(it1,it2);

四、利用swap()函数

vector<int> sum(3,1);
vector<int> tmp;
sum.swap(tmp);//交换两个向量即可重置原向量

版权声明:本文为qq_51101876原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。