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个数,为什么? 展开
#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个数,为什么? 展开
2个回答
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()
*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()来作为终止判断
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询