vector是可能由于push_back()出错的,比如:vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);……v.push_back(10000);vector<int>::iterator it;it = v.begin();这时有*it的值是1 如果再加上下面语句:v.push_back(1023);cout<<*it<<endl; //这句有可能会出错 ...
“使用push_back()可能使引用这个矢量的所有迭代器都失效”是什么意思,能举个例吗??? vector是可能由于push_back()出错的,比如: vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); …… v.push_back(10000); vector<int>::iterator it; it
迭代器可以看成是一个指针,事实上里面也包含了指针.如果某个操作修改了容器,那么就可能失效.比如你做了一个insert,那么insert的位置后面的迭代器就可能失效,但是前面的往往没问题,当然,也要看容器的结构了,如果是map,那么因为会排序,就可能失效,如果是链表,那么不删到这个元素,... 2013-12-10 C++ 迭代器,在这...