priority_queue 自定义lambda
时间: 2023-10-29 15:54:33 浏览: 118
自己编写优类似优先队列数据(priority_queue)的功能
priority_queue是一个用于存储元素的容器,它根据元素的优先级来进行排序。默认情况下,它按照元素的比较运算符(operator<)来进行排序。
如果你想自定义priority_queue的排序方式,你可以使用lambda函数来定义比较函数。下面是一个示例代码:
```cpp
#include <iostream>
#include <queue>
int main() {
// 使用lambda函数定义自定义比较函数
auto cmp = [](int a, int b) {
return a > b; // 以降序方式排序
};
// 创建priority_queue,并指定自定义比较函数
std::priority_queue<int, std::vector<int>, decltype(cmp)> pq(cmp);
// 插入元素
pq.push(5);
pq.push(2);
pq.push(10);
// 输出元素
while (!pq.empty()) {
std::cout << pq.top() << " ";
pq.pop();
}
return 0;
}
```
在这个例子中,我们使用lambda函数定义了一个自定义比较函数cmp,它按照降序方式排序。然后我们创建了一个priority_queue对象pq,并将自定义比较函数cmp作为参数传递给它。最后,我们插入一些元素并输出它们,结果将按照降序排列。
希望这个例子能帮助到你!如有任何疑问,请随时提问。
阅读全文