首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

dev c++ 的一个有关问题。这个程序的异常

2012-02-09 
dev c++ 的一个问题。这个程序的错误#include iostream#include vectorusingnamespacestdintmain(){ve

dev c++ 的一个问题。这个程序的错误
#include <iostream>
#include <vector>
using   namespace   std;
int   main()
{
  vector <int> vec;
      for(int   i=0;i <100;i++)
        vec.push_back(i+1);
    int   cnt=1;
  vector <int> ::iterator   itr=vec.begin();
    while(vec.size()!=1)
    {itr=vec.begin();
        for(;itr!=vec.end();itr++,cnt++)
          if(!(cnt%3))
            {vec.erase(itr);cnt++;}
      }  
  cout < <*itr;
  system( "pause ");
}
编译的时候没有错误,但是运行的时候没有结果,然后调试的时候报错:程序出现访问违例(段异常)     这是怎么回事啊,然后我单步运行发现在while循环里面一切正常,但是while循环条件达到的时候就不会运行了

[解决办法]
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> vec;
for(int i=0;i <100;i++)
vec.push_back(i+1);
int cnt=1;
vector <int> ::iterator itr=vec.begin();
while(vec.size()!=1){
itr=vec.begin();
for(;itr!=vec.end();cnt++){
if(!(cnt%3))
{
itr = vec.erase(itr);
cnt++;
continue;
}
itr++;
}
}
cout < <*itr;
}
这样写就好了

热点排行