1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c++容器vector删除元素erase()与迭代器的使用

c++容器vector删除元素erase()与迭代器的使用

时间:2021-05-06 11:13:41

相关推荐

c++容器vector删除元素erase()与迭代器的使用

写代码时用 for 循环删除 vector 中的元素发现总是报错,后来最细看了下 erase() 方法发现 erase()方法使用后原来的迭代器失效,返回新的迭代器。

正确的使用方法是:

#include <iostream>#include <vector>using namespace std;

int main(){vector<int> v = { 0, 1, 2, 3 };for (vector<int>::iterator it = v.begin(); it != v.end();){if (*it == 2){it = v.erase(it);//cout << *it << endl;//break;}else{++it;}}for each (int var in v){cout << var;}cout << endl;system("pause");return 0;}

输出:0, 1, 3

algorithm 库还有一个相似的方法 remove(),使用方法如下:

#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){vector<int> v = { 0, 1, 2, 3 };remove(v.begin(), v.end(), 2);for each (int var in v){cout << var;}cout << endl;system("pause");return 0;}

输出:0, 1, 3, 3

长度不变,用最后一个元素填补。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。