除了每个容器定义的迭代器外,iterator库内还定义了其他的迭代器。
1.插入迭代器:向容器中插入元素
1.1 back_inserter
1.2 front_inserter
1.3 inserter
*it =val; //上下等价 it=c.insert(it, val);//val插入it之前,并指向它 ++it;//指向原来的元素
list<int> lst={1,2,3,4}; list<int> lst2,lst3; copy(list.cbegin(),last.cend(),front_inserter(lst2));//lst2=4,3,2,1 copy(list.cbegin(),last.cend(),inserter(lst3));//lst3=1,2,3,4
2.流迭代器:绑定到输入输出流,用于遍历
stream_iterator<int> in_iter(cin),eof; vector<int> vec(in_iter,eof);
3.反向迭代器:向后移动(forward_list没有,流迭代器也没有)
sort(vec.begin(),vec.end());//正常顺序排列 sort(vec.end(),vec.begin());//逆序排列
4.移动迭代器