C++STL学习笔记 仿函数以及适配器

一、仿函数

(1)算数类(Arithmetic)

(2)逻辑运算类(Logicial)

(3)相对关系类(Relational)

1、仿函数的可适配条件

STL规定每个Adaptable Function都应该挑选适当者继承之,因为Function Adapter将会提问红色问题。例如:

Less<int>继承Binary_function,于是Less<int>便有了三个typedef,分别是

typedef int first_argument_type;

typedef int second_argument_type;

typedef bool result_type;

2、各种适配器举例

(1)函数适配器binder2nd

(2)函数适配器not1

(3)新型适配器find(Since C++11)

std::bind可以绑定:

a、functions

b、function objects

c、member functions,_1必须是某个object的地址

d、data members,_1必须是某个object的地址

返回一个function object ret。调用ret相当于调用上述a,b,c,或者相当于取出d。

二、迭代器适配器

1、迭代器适配器:reverse_iterator

reverse_iterator的关键所在,即对逆向迭代器取值,就是将对应的正向迭代器退一位取值。

2、迭代器适配器:inserter

我自己编译没有通过,查出来是Copy第三个参数,OutputIterator这个参数,不知道是否动态识别出其类型。即h36::Inserter(foo,it)的返回值的类型是否为InputIterator。

3、X适配器:ostream_iterator

4、X适配器:istream_iterator

测试用例2编译没有通过,问题点在copy函数部分。

有懂得的朋友可以帮忙看看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值