zoukankan      html  css  js  c++  java
  • adapter

    1.迭代器配接器

    (1)inserter iterator

        1.back_inserter(container)   //调用push_back();

        2.front_inserter(container)  //调用push_front();

        3.inserter(container,position);  //唯一可用于关联式容器时,position起引导作用

    对于insert迭代器,*pos==pos;

    赋值操作能被视为安插操作。

    *iter  传回iter;

    iter=value;    安插value

    ++iter和iter++都是传回iter;

    生成back_inerter 迭代器方法:

    1.back_insert_iterator<container<T>> iter(container<T> coll);

           *iter=value;                     //插入value

    2.back_inserter(coll)=value;   //插入value

    但是记住在插入前要有足够的空间。

    (2)stream iterator

        1- istream_iterator<T>(cin),istream_iterator<T>()    //读入输入流的T类型的数,类型不匹配或结尾停止

              *iter;     //传回先前读取的值

              iter->member;   //传回先前读取的元素成员

              ++iter;                //读取下一个元素;

              iter++;                //读取下一个元素

              iter1 == iter2;      //检查是否相等

        2- ostream_iterator<T>(cout,cstring);  //...为空格符

        *iter=value;     //向输出流插入value;

    (3)reverse iterator   用于逆向遍历。

    注意:rbegin()==end(), 但是内容是前一个元素的内容,逻辑指向和实际指向不同。

    container<T>::reverse_iterator rpos(pos);  //把一般迭代器改为逆向迭代器

    rrpos=rpos.base();  //把逆向迭代器改为一般迭代器 

    2.函数配接器<functional>:将两个仿函数结合起来的仿函数

    bind1st(op,value);//op是一个一元仿函数。

    bind2nd(op,value); //op是一个二元仿函数。value作为op的第二参数

    not1(op); //op是一元仿函数

    not2(op); //op是二元仿函数

    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    转:【实用教程】阿里云服务器的配置和使用
    C# 定制错误页面
    C# Session进程外存储
    NOIP200101数的计算
    周末舞会
    queue 队列
    信息学作文
    求三个数的平均数
    Hello world
    Django-Form组件-forms.Form
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058289.html
Copyright © 2011-2022 走看看