16、定义一个 sort()
函数,它将比较准则作为模板参数。定义一个 Record
类,该类有两个数据成员 count
和 price
。分别根据这两个数据成员对 vector<Record>
进行排序。
以下是实现上述功能的示例代码:
#include <iostream>
#include <vector>
#include <algorithm>
// 定义 Record 类
class Record {
public:
int count;
double price;
Record(int c, double p) : count(c), price(p) {}
};
// 定义比较准则类
// 按 count 比较
struct CompareByCount {
bool operator()(const Record& a, const Record& b) const {
return a.count < b.count;
}
};
// 按 price 比较
struct CompareByPrice {
bool operator()(const Record& a, const Record& b) const {
return a.price < b.price;
}
};
// 定义 sort() 函数,将比较准则作为模板参数
template <typename Compare>
void sort(std::vector<Record>& records) {
std::sort(records.begin(), records.end(), Compare());
}
int main() {
std::vector<Record> r