请举个例子排序函数对象
时间: 2023-10-10 09:08:41 浏览: 86
假设有一个字符串数组 `arr`,我们可以按照字符串长度从小到大的顺序对其进行排序。下面是一个使用排序函数对象进行排序的例子:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Compare {
public:
bool operator()(const string& s1, const string& s2) const {
return s1.length() < s2.length();
}
};
int main() {
vector<string> arr = {"apple", "banana", "cat", "dog", "elephant"};
Compare c;
sort(arr.begin(), arr.end(), c);
for (auto& x : arr) {
cout << x << " ";
}
cout << endl;
return 0;
}
```
在上面的例子中,我们定义了一个比较函数对象 `Compare`,其中 `operator()` 是比较两个字符串长度的函数。在 `main()` 函数中,我们首先创建了一个 `Compare` 对象 `c`,然后通过 `sort` 函数对 `arr` 进行排序,其中第三个参数为 `c`,表示按照 `c` 的规则对 `arr` 进行排序。最终输出的结果是 `cat dog apple banana elephant`,满足按照字符串长度从小到大排序的要求。
阅读全文