STL配接器原理

详细内容可以参考《STL源码剖析》

//插入迭代器适配器

将一般迭代器的赋值操作转变为插入操作。
back_insert_iterator
front_insert_iterator
insert_iterator
::因为这三个iterator adapters的使用接口不是十分直观,给一般用户带来困扰,因此STL提供三个相应函数:back_inserter(),front_inserter(),inserter().

当客户端对insert iterators做赋值操作时,就在insert iterators中被转为对该容器的迭代器做插入操作。也就是说,在insert iterators的operator= 操作符中调用底层容器的push_front(),push_back(),或insert()操作函数。

//Reverse iterators

//IOStream iterators
//将迭代器绑定到某个stream对象身上。
至于istream iterator,其实就是在istream iterator内部维护一个 istream member。客户端对于这个迭代器所做的operator ++操作,会被导引调用迭代器内部所含的那个istream member 的输入操作。

至于ostream iterator,所谓绑定一个ostream object,就是在内部维护一个ostream member,客户端对于这个迭代器所做的operator=操作,会被引调用迭代器内部的那个ostream member的输出操作。

//函数配接器
是所有配接器中数量最庞大的一个族群,可以配接,配接,再配接。这些配接操作包括(bind),否定(negate),组合(compose)(不在c++标准规范之内),以及对一般函数,成员函数的修饰(使其成为一个仿函数)
function adapters的价值在于,通过它们之间的绑定,组合,修饰能力,几乎可以无限制地创造出各种可能的表达式,搭配STL算法一起演出。

对一般函数,成员函数的修饰:
ptr_fun:这种配接器使我们能够将一般函数当作仿函数使用,拥有配接能力。
mem_fun,mem_fun_ref:用于成员函数指针。
(容器适配器没有列出来)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值