C++ 额外迭代器

 插入迭代器

  插入迭代器有三种类型:

  back_inserter : 创建一个使用push_back的迭代器,总是插入到容器最后一个元素之后。

  front_inserter : 创建一个使用push_front的迭代器,总是插入到容器第一个元素之前。

  inserter : 创建一个使用inset的迭代器,此函数接受第二个参数,必须是一个指向给定容器的迭代器,插入到给定迭代器之前。

  假定 it = inserter (c,iter) ,则

  *it = val;

  等同于:

  it = c.insert (it ,val);

  ++ it ;

 流迭代器

  istream_iterator操作

  例如从cin中读取操作。

  istream_iterator <int> int_iter(cin),eof;  //从cin读取int,eof为尾后迭代器

  while(int_iter != eof)

    vec.push_back(*in_iter++);

  更简易的循环可以用构造完成

  vector<int> vec(in_iter,eof);

  ostream_iterator操作

  用其输出值的队列。

  ostream_iterator<int> out_iter(cout," ");  //每次输出时后面加一个空格

  for(auto e:vec)

    *out_iter++=e;  //赋值语句实为写出,*和++实际并不会做任何操作

  可以使用copy来更简单的实现:

  copy(vec.begin,vec.end,out_iter);

posted @ 2019-02-28 16:58  我是好人007  阅读(153)  评论(0编辑  收藏  举报