STL vector中的元素删除
来源:互联网 发布:qq飞车f22猛禽数据 编辑:程序博客网 时间:2024/05/22 12:24
http://sakurasea.com/program/stl-vector-delete-element/
删除vector中的元素,最容易的方法就是使用vector的erase()函数。
vector vec;
for ( vector::iterator iter = vec.begin(); iter! = vec.end();)
{
if(某条件成立)
iter = vec.erase(iter);
else
iter ++;
}
如果要清空vector中的元素,可以使用erase()循环删除,也可以用clear()函数。
for ( vector::iterator iter = vec.begin(); iter! = vec.end();)
{
iter = vec.erase(iter);
}
//或者直接clear
vec.clear();
需要注意,如果vector中存储的元素是指针,那么erase()或者clear()并不会删除指针指向的对象或者内存空间,要小心内存泄漏问题。
此外,还需要注意的是,erase()函数虽然会删除指定位置的元素,但是元素所占用的内存空间并不会被释放掉,也就是说,被删除的元素所占的内存空间还是被vector占有的,而没有被系统回收。
要解决这个问题可以使用vector中的swap()函数。
假设vector vec起初有1000个元素,后来删掉500个,那么要释放掉那500个int所占的空间,可以这样:
std::vector(vec).swap(vec);
//上面这行代码相当于下面两行
//即先产生一个跟vec中现有内容相同且占用空间刚好满足其大小的vector tmp
//然后把tmp与vec对换
//当出了tmp的作用域(例如下面的一对大括号)后,tmp所占的空间就被释放掉了
{
std::vector tmp(vec);
tmp.swap(vec);
}
- STL vector中的元素删除
- STL vector中的元素删除
- STL vector中的元素删除
- STL vector 删除元素
- C++:STL:vector删除元素
- vector中的元素删除
- STL—vector删除重复元素
- 13.c++-stl::vector删除重复元素
- STL—vector删除重复元素
- C++ stl list、map、vector删除元素
- stl的vector,map,list删除元素
- STL—vector删除重复元素
- STL—vector删除重复元素
- STL中Vector元素的删除
- STL中vector删除一个元素
- STL—vector删除重复元素
- STL系列(5):vector 删除重复元素
- 删除Vector中的相等元素
- 关于linux(CentOS)无法更新安装软件出错的解决办法(提示The program package-cleanup is found in the yum-utils package)
- webtc代码流程
- C#中Abstract和Virtual
- ORACLE 表压缩
- 覆盖系统通话界面
- STL vector中的元素删除
- onTimer计时器
- 深入Java核心 Java内存分配原理精讲
- JSch:纯JAVA实现远程执行SSH2主机的SHELL命令
- Spring的第一个小程序
- MySQL模糊查找
- 邮件传输协议简介
- C++代码规范
- B. Lucky String