算数仿函数
#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;
}