欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

vector中erase函数

发布时间:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 vector中erase函数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

下列代码的输出为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

include “iostream”

include “vector”

using namespace std;

int main(void)
{
vectorarray;
array.push_back(100);
array.push_back(300);
array.push_back(300);
array.push_back(500);
vector::iterator itor;
for(itor=array.begin();itor!=array.end();itor++)
{
if(*itor==300)
{
itor = array.erase(itor);
}
}
for(itor=array.begin();itor!=array.end();itor++)
{
cout<<*itor<<” “;
}
return 0;
}
正确答案: B 你的答案: C (错误)

100 300 300 500
100 300 500
100 500

vector在erase之后,指向下一个元素的位置,其实进行erase操作时将后面所有元素都向前移动,迭代器位置没有移动。itor=array.erase(itor) erase返回下一个元素的地址,相当于给itor一个新值。

总结

以上是生活随笔为你收集整理的vector中erase函数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。