C++sort实现,支持仿函数
时间: 2024-12-19 17:22:28 浏览: 1
在C++中,`std::sort()`函数是C++标准库中的一个非常重要的算法,它用于对容器中的元素进行排序。这个函数本身并不直接支持所谓的“仿函数”(Lambda表达式)作为比较器,但是你可以通过提供一个自定义的比较函数对象或者函数指针来实现类似的效果。
如果你想要使用仿函数(lambda表达式)作为排序依据,你需要创建一个匿名函数或者lambda表达式,该表达式接收两个元素并返回一个布尔值,表示它们的相对顺序。例如:
```cpp
#include <algorithm>
#include <iostream>
#include <vector>
// 使用仿函数作为排序规则
bool compareStrings(const std::string& a, const std::string& b) {
return a > b; // 按字母逆序排序
}
int main() {
std::vector<std::string> vec = {"banana", "apple", "cherry", "date"};
std::sort(vec.begin(), vec.end(), compareStrings);
for (const auto& str : vec) {
std::cout << str << ' ';
}
std::cout << '\n';
return 0;
}
```
在这个例子中,`compareStrings`就是一个仿函数,它被传递给`std::sort()`作为第三个参数,使得字符串向后排列。
阅读全文