C++段错误
#include <iostream>#include <vector>
using namespace std;
int main()
{
vector<int> ivec = {0,1,2,3,4,5,6,7,8,9};
int num;
char c;
for(auto i = ivec.begin();i != ivec.end();i+=2)
{
cout << ivec[*i] + ivec[*i]+1 << endl;
}
auto beg = ivec.begin();
auto end = ivec.end();
auto mid = ivec.begin() + (end-beg) / 2;
for(int i = 0;beg != mid;beg++,i++)
{
cout << *(beg+=i) + *(end-=(1+i))<< endl;
}
return 0;
}
本帖最后由 friendan 于 2013-11-11 10:09 编辑
题目:使用迭代器,读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出来。
改写你的程序,这次要求先输出第1个和最后1个元素的和,
接着输出第2个和倒数第2个的元素的和,以此类推。
效果截图:
代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//题目:使用迭代器,读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出来。
//改写你的程序,这次要求先输出第1个和最后1个元素的和,
//接着输出第2个和倒数第2个的元素的和,以此类推。)
vector<int> ivec;
for(int i=0;i<10;i++)
ivec.push_back(i);//0~9
//将每对相邻整数的和输出来
//0和1相邻,1和2相邻,2和3相邻......
for(vector<int>::iterator iter=ivec.begin();;)
{
int a=*iter;
if(++iter==ivec.end())
break;
int b=*iter;
cout<<a+b<<" ";
}
cout<<endl;
//输出第1个和最后1个元素的和,
//接着输出第2个和倒数第2个的元素的和,以此类推。
//0 1 2 3 4 5 6 7 8 9
vector<int>::iterator iterA=ivec.begin();
vector<int>::iterator iterB=ivec.end();
iterB--;
int count=ivec.size()/2;
while(count>0)
{
cout<<*iterA+*iterB<<" ";
iterA++;
iterB--;
count--;
}
cout<<endl;
return 0;
}
LZ啊,首先auto这种类型是C++11里新出现的,我没有学过C++11。。。不过我觉得
for(auto i = ivec.begin();i != ivec.end();i+=2)
{
cout << ivec[*i] + ivec[*i]+1 << endl;
}
要改为
for(auto i = ivec.begin();i != ivec.end();i+=2)
{
cout<<* i+ *(i+1) << endl;
} {:1_1:}我不看下面 的 LZ你确定 你头文件导对了吗?
#include <iostream>
#include <vector>
没加 .h 仰望天上的光 发表于 2013-11-8 16:36 static/image/common/back.gif
LZ啊,首先auto这种类型是C++11里新出现的,我没有学过C++11。。。不过我觉得
for(auto i = ivec.begin(); ...
题目是这样的(使用迭代器,读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出出来。改写你的程序,这次要求先输出第1个和最后1个元素的和,接着输出第2个和倒数第2个的元素的和,以此类推。)
乱闯 发表于 2013-11-8 16:53 static/image/common/back.gif
我不看下面 的 LZ你确定 你头文件导对了吗?
#include
#include
C++11统一不见使用.h后缀,c里面原有的头文件,C++11中去掉.h再在前面加上c表示 Only_為_の 发表于 2013-11-8 21:08 static/image/common/back.gif
题目是这样的(使用迭代器,读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出出来。改写 ...
以前没学过C++,自己也是刚学。题目要用迭代器,代码被我改的乱七八糟。 Only_為_の 发表于 2013-11-8 21:10 static/image/common/back.gif
C++11统一不见使用.h后缀,c里面原有的头文件,C++11中去掉.h再在前面加上c表示
{:1_1:}谢谢 LZ指正我是做Java的目前正在学习c/c++ 完全看不懂。来学习学习 friendan 发表于 2013-11-11 10:08 static/image/common/back.gif
题目:使用迭代器,读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出来。
改写你的程序, ...
谢谢帮忙,我在你的代码基础上修改了一下/*请使用迭代器重做3.3.3节(第94页)的最后一个练习。
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
for(int i=0;i<10;i++)
{
ivec.push_back(i);
}
for(auto it=ivec.begin();it != ivec.end();it++)
{
int a = *it;
int b = *(it+1);
cout << a+b << " ";
}
cout << endl;
int count = ivec.size()/2;
for(auto itA=ivec.begin(),itB=ivec.end()-1;count !=0;itA++,itB--)
{
cout << *itA + *itB <<" ";
count--;
}
cout << endl;
return 0;
}
页:
[1]