std::priority_queue默认为大根堆,改小根堆需显式指定模板参数并使用std::greater作为比较器,因lambda类型不可名状故不可用,自定义类型须提供严格弱序比较逻辑。

priority_queue 默认是大根堆,怎么改成小根堆
默认的 std::priority_queue 是最大堆(顶部最大),因为底层用的是 std::less 作为比较器。要变成最小堆(顶部最小),最直接的方式是换比较器:std::greater。
注意:必须显式指定三个模板参数,不能只写 priority_queue —— 缺少 vector 会编译失败,因为第二个参数是容器类型,不能省略。
greater
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











