返回信息流//head.h
#include<iostream>
#include<vector>
using namespace std;
const int a=10;
//1.cpp
#include"head.h"
using namespace std;
void main()
{
vector<int> ivec;
vector<int>::iterator iter=ivec.begin();
for(vector<int>::size_type ix=0;ix<=9;ix++)
{
ivec.push_back(a);
}
for(;iter!=ivec.end();iter++)
{
cout<<*iter<<endl;
}
}
用vs10编译连接都可以过,但运行时出错,错误出现在for循环语句。
单独使用cout<<*iter<<endl;也会出同样的从,想问一下这种解引用的方式为什么会出错?
这是一条镜像帖。来源:北邮人论坛 / cpp / #42571同步于 2010/8/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
vector<int> iterator解引用出错
zslb111
2010/8/21镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
re...
push_back会导致迭代器失效...
【 在 zane (强者自强) 的大作中提到: 】
: vector<int>::iterator iter=ivec.begin();
: 放到第一个for循环下面
【 在 zane 的大作中提到: 】
: vector<int>::iterator iter=ivec.begin();
: 放到第一个for循环下面
: --
: ...................
确实可以过,谢谢!
【 在 shenlei 的大作中提到: 】
: re...
: push_back会导致迭代器失效...
: 【 在 zane (强者自强) 的大作中提到: 】
: ...................
原来还有这么一说?
以后得多注意这个问题
多谢赐教!