C++ primer 习题练习:3.17

习题3.13的迭代器版本:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> ivec; int ival; //读入数据到vector对象 cout<<"Enter number:"<<endl; while (cin>>ival) { ivec.push_back(ival); } //计算相邻元素和并输出 if (ivec.size()==0) { cout<<"No element?!"<<endl; return -1; } //debug:输出vector cout<<"iVec中的元素:"; for (vector<int>::iterator index=ivec.begin();index!=ivec.end();index++) { cout<<*index<<"/t"; } //任务1: cout<<"/n相邻两元素的和:"<<endl; vector<int>::size_type cnt=0; for (vector<int>::iterator iter=ivec.begin();iter<ivec.end()-1;iter=iter+2) { cout<<*iter+*(iter+1)<<"/t"; ++cnt; if (cnt%6==0)//换行 { cout<<endl; } } if (ivec.size()%2!=0)//提示最后一个元素没有求和 { cout<<endl <<"The last element is not been summed" <<"and its value is " <<*(ivec.end()-1)<<endl; } //任务2:前后两两求和 vector<int>::iterator first=ivec.begin(),last=ivec.end()-1; cout<<"/n前后两元素两两求和!/n"; while (first<last) { cout<<(*first)+(*last)<<"/t"; first++; last--; } if (first==last) { cout<<"/n最间元素没有求和!/n" <<"其值是:"<<*first; } cout<<endl; return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值