新手求助,不知道哪错了

pepepehead 2010-05-19 06:32:20
下面的代码在VC6.0是运行正常,我用VS2008运行,在"for(--first;first>b.begin()-1;first--)"这句出错,想不明白呀;


void main(){
int a[5]={1,65,22,66,654};
vector<int>b(a,a+5);

typedef vector<int>::iterator iter;
iter first=b.begin();

for(first;first<(b.end());first++)
cout<<*first<<",";

for(--first;first>b.begin()-1;first--)
cout<<*first<<",";
}
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pepepehead 2010-05-19
  • 打赏
  • 举报
回复
确实是这样,谢谢啦
pengzhixi 2010-05-19
  • 打赏
  • 举报
回复
b.begin()-1//很多编译都不知道这个迭代器是否合法。
pengzhixi 2010-05-19
  • 打赏
  • 举报
回复
for(--first;first>b.begin()-1;first--)//建议使用反向迭代器
ithiker 2010-05-19
  • 打赏
  • 举报
回复
b.begin()-1的问题:不一定是减掉一个迭代器所指对象的长度
代码的写法很不好;还是换为常规的写法比较好~

64,678

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧