zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    虚拟机安装配置
    大整数加法 面试题
    结构体
    操作文件
    Gcd HDU
    牛客练习赛47 A DongDong破密码 (异或性质,递推)
    ACM常用之 异或运算的性质。
    Wannafly挑战赛22 C 多项式(大数,多项式极限)
    大数全能模板
    Wannafly挑战赛22 D 整数序列 (线段树维护三角函数值)
  • 原文地址:https://www.cnblogs.com/wshr007/p/10451525.html
Copyright © 2011-2022 走看看