首页 理论教育 select1st和select2nd的用法

select1st和select2nd的用法

时间:2023-10-25 理论教育 版权反馈
【摘要】:例13-19例13-19的执行结果为:3.仿函数select1st和select2nd仿函数select1st<pair>和select2nd<pair>可以接受单一参数,参数是pair类型。

select1st和select2nd的用法

基本的“证”仿函数是identity,其他均为一般化形式。C++标准没有涵盖identity和映射两种操作行为,但由于它们使用得非常普遍,多数C++版本中添加了它们的定义。

1.仿函数identity

类identity是一种一元仿函数,用于表示“证”仿函数,使用时需要一个参数,返回的是未经任何变化的原参数。

例13-18

例13-18的执行结果为:

提示

在Visual Studio 2008环境下,为确保程序能够顺利通过,需要将头文件<yvals.h>中的宏_HAS_TRADITIONAL_STL的值修改为1,编译程序才能顺利通过。13.7节和13.8节中的内容均做相同处理。

2.仿函数project1st和project2nd

仿函数project1st的声明形式为:

仿函数project2nd的声明形式为:

这两个仿函数均接受两个参数。project1st返回第一个参数并忽略第二参数;project2nd返回第二个参数并忽略第一个参数。这两个仿函数的基类均为binary_function<Arg1,Arg2,Arg2>。这两个仿函数类均包括5个成员函数:

在使用上述两个仿函数时,需要包含头文件<functional>。

例13-19(www.xing528.com)

例13-19的执行结果为:

3.仿函数select1st和select2nd

仿函数select1st<pair>和select2nd<pair>可以接受单一参数,参数是pair类型。仿函数select1st返回该pair的第一个元素;仿函数select2nd返回该pair的第二个元素。这两个仿函数也定义于头文件<functional>中。这两个仿函数的基类是:unary_function<pair,typename pair::first_type>

这两个仿函数类均包括4个成员函数:

•argument_type

•result_type

•const typename pair::first_type&select1st::operator()(const pair&p)const

•select1st()/select2nd()

例13-20

例13-20的执行结果为:

抽取键值:1 33 47

抽取实值:0.3 0.1 0.8

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈