C++ vector结构体vector 如何删除其中符合条件的元素?

在vector中由于有多个符合要求的元素需要删除如果直接删除后,指针直接++就会出现问题这是因为当erase后,iter就变成了一个野指针对一个野指针++是一定会出现错误的。

乍一看這段代码很正常。其实这里面隐藏着一个很严重的错误:当veci.erase(iter)之后iter就变成了一个野指针,对一个野指针进行 iter++ 是肯定会出错的

这段代码吔是错误的:1)无法删除两个连续的"3"; 2)当3位于vector最后位置的时候,也会出错(在veci.end()上执行 ++ 操作)

 
}

1. vector中常用的插入和删除操作

2. 想要删除vector中符合条件的元素使用erase:

在c++中,erase重载了2个函数分别是:删除迭代器指向的元素和删除迭代器区间中的所有元素。

  • (1)删除vector中指定元素(注意:重载的这两erase函数的返回值都是指向下一个元素的迭代器)
删除vec中所有值为5的元素. 请按任意键继续. . .
}

C++ 如何删除vector中的结构体vector元素 [问题点數:20分]

我想根据下标删除vector中的结构体vector元素


//怎样能根据下标删除其中任意任意项呢
}大家看看应该怎么做呢?谢谢大家了最好能给个代码

謝谢你,我就是删除后再++系统崩溃一开始没找出什么原因,看了后明白了

匿名用户不能发表回复!
}

我要回帖

更多关于 结构体vector 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信