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

用普通的迭代器逆序输出vector对象时,运行报错 vector iterator not decrementable

2013-09-28 
求助:用普通的迭代器逆序输出vector对象时,运行报错 vector iterator not decrementable小弟菜鸟,可能描述

求助:用普通的迭代器逆序输出vector对象时,运行报错 vector iterator not decrementable
小弟菜鸟,可能描述的不太严谨,各位大神见谅
程序编译能通过,但是运行出现结果后跳出对话框提示错误debug Assertion Failed!

#include <vector>
#include <list>
#include<iostream>
#include<algorithm>
#include<numeric>
#include<iterator>

using namespace std;

void main()
{
vector<int> ivec   ;

for(vector<int>::size_type i=0 ; i !=120; ++i)
{ivec.push_back(i);
}

vector<int>::iterator iter1 ;   //iter2;
iter1=ivec.end();
iter1--;  
while ( iter1 >= ivec.begin() )
{
cout<<*iter1<<" ";
--iter1;
}
cout<<endl;

}

迭代器 decrementable debug
[解决办法]
原因在这段代码里
while ( iter1 >= ivec.begin() )
{
cout<<*iter1<<" ";
--iter1;
// 当执行到最后iter1==ivec.begin()的时候,--iter1就会引发断言了
}

热点排行