[置顶] 迭代器习题解答(一)

/*
    读一组整数到vector对象,计算并输出每对相邻元素的和。
如果读入元素个数为奇数,则提示用户最后一个元素没有求和,
并输出其值。要求使用迭代器完成此题。
    然后修改程序:头尾元素两两配对(第一个和最后一个,第
 二个和倒数第二个,由此类推,计算每对元素的和,并输出)
*/

 

main.cpp文件


#include "iostream"
#include "vector"
using namespace std;
int main()
{
 void xianglinghe(vector<int> a1);
 void touweihe(vector<int> a1);
 vector<int> a;
 int x;
 while(cin>>x)
  a.push_back(x);
 fflush(stdin);
 xianglinghe(a);
 cout<<endl;
 touweihe(a);
 getchar();
 return 0;
}

 

func.cpp文件

 

#include "iostream"
#include "vector"
using namespace std;

/*
功能:求容器元素的首尾和。
注意:zhong被定义为vector<int>::iterator 后,只能使用
zhong=tou+a.size()/2来求它的值,不能用zhong=wei-tou;
如果一定要用zhong=wei-tou,则zhong必须定义为:
vector<int>::difference_type zhong; 但此例象这样定义后,
后面while(tou<zhong)中的tou和zhong就类型不匹配了。
*/
void touweihe(vector<int> a1)
{
 vector<int>::iterator tou,wei,zhong;
 tou=a1.begin();
 wei=a1.end()-1;
 zhong=tou+a1.size()/2;//容器中点
 while(tou<zhong)//此处要认真推导究竟有没有等于?即tou<=zhong
 {
  cout<<*tou+*wei<<" ";
  tou++;
  wei--;
 }
 if(tou==wei) cout<<"中间那个元素  "<<*tou<<"  没有求和";
}

//========================================================
/*
  功能:相邻两个元素求和。
  如果是单数,只提示最后一个元素没有求和
*/
void xianglinghe(vector<int> a1)
{
 vector<int>::iterator i;
 for(i=a1.begin();i<a1.end();i+=2)
 {
  if(i+1==a1.end()) cout<<"最后一个元素  "<<*i<<"  没有求和"<<endl;
  else cout<<*i+*(i+1)<<"  ";
 }
}

 

庭博网校QQ:14280784    86974558

学习内容和顺序:

1、C语言;

2、C++语言;

3、VC++;(完成1、2、3后,你可以在公司里拿3000元左右工资)

4、win32编程;

5、数据库编程;(完成1、2、3、4、5你可以找老板要4000元工资)

6、网络编程;

7、多线程编程。(完成7项,你可以找老板要6000元工资)

一年2500元。每天2小时上课

你可能感兴趣的:([置顶] 迭代器习题解答(一))