迭代器
来源:互联网 发布:js中使用java变量 编辑:程序博客网 时间:2024/05/24 01:00
!但凡使用迭代器的循环体,不要对迭代器所属容器作添加、删除操作,因为那会使迭代器失效。
!添加、删除vector、string、deque元素的循环程序必须考虑每个循环步中都更新迭代器、引用或指针。
!添加、删除vector、string、deque元素后,原来end返回的迭代器总是会失效,所以不能在循环之前保存end返回的迭代器
#include <iostream>#include <cstdio>#include<vector>using namespace std;using namespace cv;void DeleteLeave(vector<int>&n){ auto iter = n.begin(); while (iter != n.end()) { if (*iter % 2) { iter = n.insert(iter, *iter);//复制当前元素并复制到迭代器之前 iter += 2;//迭代器跳过插入的元素及当前元素 } else { iter = n.erase(iter);//迭代器指向删除的元素之后的元素 } }}void main(){ vector<int>n = { 1, 2, 3, 4, 5 }; DeleteLeave(n); for (auto iter = n.begin(); iter != n.end(); iter++) { cout << *iter<<endl; } }
。…………。……。………………未完待续
0 0
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- 迭代器
- zip压缩算法分析(2)
- 匿名对象
- Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese
- nyoj 325 和 nyoj 456【经典dp】
- 归并排序-《算法导论》学习笔记二
- 迭代器
- 【历史】JavaScript和Java没啥关系!————JavaScript简史
- java io流详解(一)
- Java历史简介
- hdu5510Bazinga+KMP
- hhu Kingdom of Black and White 暴力 TWT Tokyo Olympic 1COMBO -1
- 贝叶斯分类器(含MATLAB实现)
- [swift]的简单使用常量变量。字典 数组的初始化
- 矩形覆盖