c++sort函数指定labmda排序规则
时间: 2024-07-14 18:01:07 浏览: 79
C++使用sort函数进行容器排序.docx
在C++中,`std::sort()` 函数是一个非常常用的用于对容器中的元素进行排序的算法。如果你想根据自定义的排序规则对元素进行排序,可以传递一个lambda表达式作为比较函数。这个lambda表达式定义了两个参数(通常假设为T类型的元素),并返回一个布尔值,表示第一个参数是否应该排在第二个参数之前。
例如,假设我们有一个包含整数的vector,并希望按照降序排序:
```cpp
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> numbers = {4, 2, 9, 1, 7};
// 使用lambda表达式指定降序排序规则
std::sort(numbers.begin(), numbers.end(), [](const int& a, const int& b) -> bool {
return a > b;
});
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,lambda `[](const int& a, const int& b) -> bool { return a > b; }` 定义了一个规则:如果`a`大于`b`,则认为`a`应当排在`b`前面。如果你想要升序排序,只需将条件改为`return a < b;`。
阅读全文