习题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; }