考虑一下:
// set_iterator.cpp : Defines the entry point for the console application. #include "stdafx.h" #include <iostream> #include <set> using namespace std; int _tmain(int argc,_TCHAR* argv[]) { set<int> a1; set<int> a2; a1.insert(3); a1.insert(4); a1.insert(5); a2.insert(1); a2.insert(2); a2.insert(6); set<int>::iterator iter; int x = 0; for (iter = a1.begin(); iter != a1.end(); ++iter) { if (x == 0) { x = 1; a1.insert(a2.begin(),a2.end()); } cout << *iter << endl; } system("pause"); return 0; }
目标是访问集合中的每个元素一次.我认为在将元素插入a1后,迭代器无效.
输出是
3 4 5 6
1,2不打印.
我们如何编码这样的情况.
@H_301_13@