c++ - 如何在C++中创建成对的优先级队列。弹出带有最小值的元素。默认一个最大弹出

标签 c++

priority_queue < pair < long long int,pair <long long int ,long long int > > > pq;

在这一行代码中,我想在第一个priority_queue的基础上形成long long int

队列弹出分钟。元件。

最佳答案

std::priority_queue模板允许您指定符合compare requirement的类型:

typedef mypair pair<long long int, pair<long long int, long long int> >;
std::priority_queue<mypair,
                    std::vector<mypair>,
                    std::greater<mypair> > pq;

如果您只需要反转顺序,则可以std::greater而不是默认的std::less。如果需要更复杂的比较功能,则可以实现自己的比较功能。

关于c++ - 如何在C++中创建成对的优先级队列。弹出带有最小值的元素。默认一个最大弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62008193/

相关文章:

c++ - 使用带两个链表的邻接表的深度优先搜索 C++ 实现

c++ - 有什么办法可以直接转到具体案例吗?

c++ - 为什么重载运算符不起作用?

c++ - 如何在 VS2010 中将 lambda 降级为函数指针?

c++ - SonarQube Visual Studio 2013 C++ 插件

c++ - 当内存位置的内容改变或被读取时自动中断

c++ - std::map 和 std::vector 线程安全吗?

c++ - 类型a必须实现继承的纯虚方法b

c++ - 为什么我的 RGB 转十六进制函数在传递颜色分量时返回 0?

c++ - std::cout<< x 之间的区别是什么?和 std::cout<<x<<std::endl;?