vector.erase()用法介绍及注意事项;
来源:互联网 发布:设计美工的电脑配置 编辑:程序博客网 时间:2024/05/12 14:08
vector::erase():从指定容器删除指定位置的元素或某段范围内的元素
vector::erase()方法有两种重载形式
如下:
iterator erase( iterator _Where);
删除指定位置的元素,返回值是一个迭代器,指向删除元素的下一个元素;
iterator erase( iterator _First, iterator _Last);
删除从_First开始到_Lsat位置的元素,返回值也是一个迭代器,指向最后一个删除元素的下一个位置。
调用erase()函数后,vector后面的元素会向前移位,形成新的容器,这样原来指向删除元素的迭代器(_Where)就失效了。
所以下面的程序是错误的!
for(vector<int>::iterator it=arr.begin(); it!=arr.end(); it ++) {
if(* it == 0) {
arr.erase(it); //在erase后,it失效,并不是指向vector的下一个元素,it成了一个“野指针”。
}
}
正确的使用方式是:
for(vector<int>::iterator it=arr.begin(); it!=arr.end(); ){
if(* it == 0) {
it = arr.erase(it);
}
else {
++it;
}
}
0 0
- vector.erase()用法介绍及注意事项;
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- vector中erase用法注意事项
- 利用JXL根据Exel的某一列进行拆分Excel
- 基于R做聚类分析
- Leetcode -- Binary Tree Maximum Path Sum
- ubuntu14.04 设置界面内容残缺(只剩下一部分了)
- deepin下搭建自己的git服务器
- vector.erase()用法介绍及注意事项;
- 初码代码的一点感想
- ubuntu14.04 增加虚拟内存swap
- EMBA提前面试准备技巧
- 【逗比】CodeVS 4328 随机数(关于随机数的讲解)
- 常见的排序算法
- TCP/IP 协议栈及 OSI 参考模型详解
- Java笔记集合之ArrayList
- 考研专业课复习五大看书方法