新浪微博 Github

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是二元仿函数

 

 

 

 

posted @ 2010-08-20 16:19  xiazdong  阅读(170)  评论(0编辑  收藏  举报