如何使用通用方法重载运算符?我有这种情况:
struct sortByDesc1 {
bool operator() (const pair<int, int> &left, const pair<int, int> &right) {
return left.second > right.second;
}
};
将运算符更改>
为<
struct sortByAsc1 {
bool operator() (const pair<int, int> &left, const pair<int, int> &right) {
return left.second < right.second;
}
};
pair<int, int>
数据类型的微小变化pair<float, float>
struct sortByDesc2 {
bool operator() (const pair<float, float> &left, const pair<float, float> &right) {
return left.second > right.second;
}
};
使用示例
vector< pair<int, int> > vec;
sort(vec.begin(), vec.end(), sortByAsc1());
我想要一个通用功能,这可能吗?例如。:
# Abstracting
sort(vec.begin(), vec.end(), generic(asc, int));