/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:刘涛
* 完成日期:2016年5月30日
* 版本号:vc++6.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;
}
运行结果:
知识点:列表容器,他的特点就是不能随机访问但是可以高效的在任意位置插入和删除元素。
front_inserter(id)代表在头部位置插入元素,但是这里不明白插入的id为什么是2
back_inserter(id))在尾部位置插入元素,同样不明白为什么是4.
copy(id.rbegin(), id.rend(),可以得到容器的最后一个元素的逆向迭代器,和可以得到指向容器的第一个元素的前一个位置的逆向迭代器。