问题及代码:
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All right reserved.
*文件名称:77.cpp
*作 者:董凯琦
*完成日期:2016年6月1日
*版 本 号:v1.0
*
*问题描述:
阅读并运行程序,解释程序执行得到的结果
*输入描述:
*程序输出:
*/
#include <iterator>
#include <list>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
int ia[5]={1,2,3,4};
list<int> id(ia,ia+4);
ostream_iterator<int>outite(cout," ");
copy(id.begin(),id.end(),outite);
cout<<endl;
copy(ia+1,ia+2,front_inserter(id));
copy(id.begin(),id.end(),outite);
cout<<endl;
copy(ia+3,ia+4,back_inserter(id));
copy(id.begin(),id.end(),outite);
cout<<endl;
list<int>::iterator ite=find(id.begin(),id.end(),3);
copy(ia+0,ia+2,inserter(id,ite));
copy(id.begin(),id.end(),outite);
cout<<endl;
copy(id.rbegin(),id.rend(),outite);
cout<<endl;
return 0;
}
运行结果:
程序分析:
1、 int ia[5]={1,2,3,4};
list<int> id(ia,ia+4);
ostream_iterator<int>outite(cout," ");
copy(id.begin(),id.end(),outite);
利用输出迭代器将数组中的数字依次输出;
2、通过 copy(ia+1,ia+2,front_inserter(id));将第二个数组复制到第一个数字的前面。输出第二行结果
3、同样的道理,输出第三行结果。
4、找到3,将第一个数字和第二个数字复制到3的前面。得到第四行结果。
5、将最终的结果逆序输出。