问题及代码:
/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:崔青青
*完成日期:2016年6月4日
*版 本 号:v1.0
*问题描述:
*输入描述:无
*输出描述:无
*/
#include <iostream>
#include<list>
#include<algorithm>
#include<iterator>
#include<vector>
#include<functional>
#include<deque>
#include<string>
using namespace std;
int main()
{
string names1[]={"Alice","Helen","Lucy","Susan"};
string names2[]={"Bob","David","Levin","Mike"};
list<string>s1(names1,names1+4);
list<string>s2(names2,names2+4);
s2.splice(s2.end(),s1,s1.begin());
copy(s1.begin(),s1.end(),ostream_iterator<string>(cout," "));
cout<<endl;
copy(s2.begin(),s2.end(),ostream_iterator<string>(cout," "));
cout<<endl;
list<string>::iterator iter1=s1.begin();
advance(iter1,2);
list<string>::iterator iter2=s2.begin();
++iter2;
list<string>::iterator iter3=iter2;
advance(iter3,2);
s1.splice(iter1,s2,iter2,iter3);
copy(s1.begin(),s1.end(),ostream_iterator<string>(cout," "));
cout<<endl;
copy(s2.begin(),s2.end(),ostream_iterator<string>(cout," "));
cout<<endl;
return 0;
}
运行结果:
知识点总结:
splice将数组中的元素进行移动,advance进行n次自加,copy算法,输出迭代器。
学习心得:
读代码不如自己写代码,只有当你自己亲身体会了,才能够真正掌握。