vector erase
时间: 2023-10-29 09:58:27 浏览: 102
c++之vector容器erase操作
5星 · 资源好评率100%
在C++中,vector的erase函数用于删除vector中的元素。它有两种形式:
1. iterator erase(iterator position):删除指定位置的单个元素。2. iterator erase(iterator first, iterator last):删除指定范围内的一段元素。
在提供的引用中,第一个示例中使用的是第一种形式,即通过指定迭代器来删除元素,但这样做可能会导致迭代器失效,可能产生错误。为了避免这种情况,应该使用第二种形式,并将erase函数的返回值赋给迭代器,以保证迭代器的有效性。
所以正确的用法应该是:
for(vector<int>::iterator iter=veci.begin(); iter!=veci.end(); ) {
if( *iter == 3)
iter = veci.erase(iter);
else
++iter;
}
阅读全文