STL:内建函数对象

一.谓词概念

谓词是指普通函数或重载的operator()返回值是bool类型的函数对象(仿函数)。如果operator接受一个参数,那么叫做一元谓词,如果接受两个参数,那么叫做二元谓词,谓词可以作为一个判断式。

struct myfuncobj01 {
	bool operator(int v){}//接受一个参数,并且返回值为bool,即为一元谓词
};
bool compare01(int v){}//同样是一元谓词

struct myfuncobj02 {
	bool operator(int v1,int v2) {}//接受两个参数,并且返回值为bool,即为二元谓词
};
bool compare02(int v1,int v2) {}//同样是二元谓词

二.内建函数对象

STL内建了一些函数对象。分为:算数类函数对象、关系运算类函数对象、逻辑运算类仿函数。这些仿函数产生的对象,用法和一般函数完全相同,当然我们还可以产生无名的临时对象来履行函数功能。使用内建函数对象,需要引入头文件:

#include<functional>

1.六个算数类函数对象,除了negate是一元运算,其他都是二元运算

template<class T> T plus<T>//加法仿函数
template<class T> T minute<T>//减法仿函数
template<class T> T multiplies<T>//乘法仿函数
template<class T> T divides<T>//除法仿函数
template<class T> T modulus<T>//取模仿函数
template<class T> T negate<T>//取反仿函数

测试:
在这里插入图片描述

plus<int> myplus;
cout << myplus(10, 20) << endl;

在这里插入图片描述
2.六个关系运算类函数对象,每一种都是二元运算

template<class T> bool equal_to<T>//等于
template<class T> bool not_equal_to<T>//不等于
template<class T> bool greater<T>//大于
template<class T> bool greater_equal<T>//大于等于
template<class T> bool less<T>//小于
template<class T> bool less_equal<T>//小于等于

3.逻辑运算类运算函数,not为一元运算,其余为二元运算

template<class T> bool logical_and<T>//逻辑与
template<class T> bool logical_or<T>//逻辑或
template<class T> bool logical_not<T>//逻辑非
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值