仿函数相关

仿函数作用

1、概念

仿函数概念
仿函数是定义了一个含有 operator() 成员函数的对象,可视为一个一般函数,不过这个函数功能是在类运算符operator() 中实现的。它是一个函数对象,它将函数作为参数传递的方式来使用

2、作用

1、作为排序规则(排序不能直接使用运算符 < 或 > )

2、作为判别式(返回值为 bool 类型)

3、同时拥有多种内部状态(返回一个值同时累加)

4、作为 for_each 返回值

2.1 作为排序规则

# 方法一
class Student {
public:
	string getName() {
		return m_name;
	}
    
public:
	string m_name;
};

class StudentSortRule {
public:
	bool operator()(Student S1, Student S2) {
		return (S1.getName() < S2.getName());
	};
};

int main() {
	typedef set<Student, StudentSortRule> StudentSet; 
	StudentSet stuSet;  // 根据学生名字进行排序

    Student stuJack;
	stuJack.m_name = "Jack";

	Student stuToby;
	stuToby.m_name = "Toby";

	stuSet.insert(stuJack);
	stuSet.insert(stuToby);
	return 0;
}

# 方法二
bool static cmp(const pair<int, int> &a, const pair<int, int> &a)
{
    return a.second > b.second;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值