c++一个小的程序问题

#include<iostream>#include<vector>#include<Windows.h>usingstd::cin;usingstd::cout;usi... #include <iostream>
#include <vector>
#include <Windows.h>

using std::cin;
using std::cout;
using std::endl;
using std::vector;

int main ()
{
vector<int> ivec;
int comtep;

cout << "请输入十个数\n";
for(vector<int>::size_type ix = 0; ix != 10; ++ix)
{
cin >> comtep;
ivec.push_back(comtep);
}

for(vector<int>::iterator iter = ivec.begin();
*iter != 10; ++iter)
{

*iter = (*iter) * 2;;
cout << *iter <<" ";
}

system("pause");

return 0;
}
//输入1111122222程序输出2222244444然后崩溃。输入1 2 3 4 5 6 7 8 9 10 ,输出2 4 6 8 10 12 14 16 18正常退出,但是只有9个数,为什么?
展开
 我来答
匿名用户
2013-07-21
展开全部
for(vector<int>::iterator iter = ivec.begin();
*iter != 10; ++iter)
{

*iter = (*iter) * 2;;
cout << *iter <<" ";
}

这个循环的的执行条件是*iter != 10,当等于10时结束循环
/输入1111122222,显然*iter不会等于10,会无限循环下去
输入1 2 3 4 5 6 7 8 9 10,当等于10时循环结束,当然只有9个数

应该有办法判断iter是否到达了末尾,比如 iter<=ivec.end()
追问
谢谢,粗心了,应该用 ivec.end()来作为终止判断
zhangrui9x
2013-07-21 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:64
采纳率:0%
帮助的人:35.9万
展开全部
第一次输入没有空格的话,1111122222
会被当成一个数,结果超过了一个数所能存放的上限
第二次输入问题:*iter != 10;
这里,遇到10就结束循环,也就是输出前九个数,第10次结束了
你可以写成*iter<= 10;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式