错误的删除方法:
for(vector<int>::iterator it = vecInt.begin(); it != vecInt.end();it++)
{
if( 1)//条件成立
{
vecInt.erase( it );
}
}
使用上面的方法删除元素,程序中会报错:vector iterators incompatible,原因是erase后,it的指向是不定的,不能在用来跟vecInt中的元素做比较,正确的做法是将erase的返回值赋给变量it,erase函数的返回值是指向被删除元素的后继元素或者end.
正确的删除方法:
for(vector<int>::iterator it = vecInt.begin(); it != vecInt.end();)
{
if( 1)//条件成立
{
it = vecInt.erase( it );
}else
{
it ++;
}
}
详细解决方案
[积累]正确删除Vector元素的方式
热度:44 发布时间:2024-01-21 14:55:39.0
相关解决方案
- Vector.clear 的有关问题
- vector push_back出错(release版本),该如何处理
- vector 对象数组删除有关问题
- 请教 Vector vetinon= new Vector();这个语句是什么意思啊?
- ArrayList,Vector, LinkedList的储存性能和特性
- Openlayers学习札记――Vector Layer Style
- Openlayers学习札记――Vector Layer 事件类型
- Vector<Message> messages; 有错吗?该如何解决
- Vector、Connection、Statement、abstractTableModel,该如何处理
- Vector 的有关问题
- java Vector 的用法解决思路
- Vector is a raw type. References to generic type Vector<E> should be parameteriz,该怎么处理
- ArrayList Vector,该如何处理
- vector hashtable过时?该如何处理
- 生手学习java中关于ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- 小弟我的代码有什么东东,为什么报java.lang.String cannot be cast to java.util.Vector
- vector 实现解决方案
- List list1 = new ArrayList()跟List list2 = new Vector()的疑问
- vector 与 ArrayList解决方法
- vector 如何实现查找功能
- java Vector<String>有关问题!
- error LNK2005: “public: class std:vector<class std:vector<class std:vector<float>”
- PAT - 甲级 - 1112. Stucked Keyboard (20) (STL - vector)
- 关于c++ vector 插入pair
- vector 简介
- C++ Vector 练习
- (vector、map+set)L2-019. 悄悄关注
- (vector)L2-017. 人以群分
- (排序问题+vector)L2-015. 互评成绩
- HDU1276:士兵队列训练(vector + 暴力)