#include<iostream>
#include<functional>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
int add(int i, int j) { return i + j; }
struct divide {
int operator()(int denominator, int divisor) {
return denominator / divisor;
}
};
int main() {
vector<int> aa{ 1,5,8,7,9,6,4,3,2,0 };
sort(aa.begin(), aa.end(), greater<int>());
cout << endl;
function<int(int, int)> f1 = add;
function<int(int, int)> f2 = divide();
function<int(int, int)> f3 = [](int i, int j) {return i - j; };
cout << f1(1, 3) << endl << f2(1, 3) << endl << f3(1, 3) << endl;
map<string, function<int(int,int)>> binops;//函数表
binops.insert({ "+",f1 });
binops.insert({ "/",f2 });
binops.insert({ "-",f3 });
binops.insert({ "*",multiplies<int>() });
cout<<binops["+"](77, 22);
}
functional
最新推荐文章于 2024-04-25 19:07:15 发布