0
点赞
收藏
分享

微信扫一扫

c++函数对象functional:算数仿函数,关系仿函数,逻辑仿函数

狗啃月亮_Rachel 2022-03-11 阅读 60

算数仿函数

#include<iostream>
#include<string>
using namespace std;
#include<map>
#include<set>
#include<functional>

/*函数对像

template<class T> plus<T>//加法仿函数
minus -减
multiplies *乘
divides /除
modulus %取余
negate ~取反
*/


void test() {
	cout << plus<int>()(10, 20) << endl;
	cout << minus<int>()(10, 20) << endl;
	cout << multiplies<int>()(10, 20) << endl;
	cout << divides<int>()(10, 20) << endl;
	cout << modulus<int>()(10, 20) << endl;
	cout << negate<int>()(10) << endl;
	
}

int main() {
	test();
	return 0;
}

关系仿函数

#include<iostream>
#include<string>
using namespace std;
#include<map>
#include<set>
#include<functional>

/*关系仿函数
template<class T> bool equal_to<T> //==等于
not_equal_to !=不等于
greater >大于
greater_equal >=大于等于
less <小于
less_equal <=小于等于
*/


void test() {
	cout << equal_to<int>()(10, 20) << endl;
	cout << not_equal_to<int>()(10, 20) << endl;
	cout << greater<int>()(10, 20) << endl;
	cout << greater_equal<int>()(10, 20) << endl;
	cout << less<int>()(10, 20) << endl;
	cout << less_equal<int>()(10,20) << endl;
	
}

int main() {
	test();
	return 0;
}

逻辑仿函数

#include<iostream>
#include<string>
using namespace std;
#include<map>
#include<set>
#include<functional>

/*逻辑仿函数
template<class T> bool logical_and<T> //&&逻辑与
logical_or ||逻辑或
logical_not !逻辑非
*/


void test() {
	cout << logical_and<bool>()(1, 0) << endl;
	cout << logical_or<int>()(1, 0) << endl;
	cout << logical_not<bool>()(true) << endl;
	
	
}

int main() {
	test();
	return 0;
}
举报

相关推荐

0 条评论