Abu*_*ifa 2 c++ computer-science data-structures
如何使用C++构建优先级队列,优先级甚至是大数字,然后是小的奇数?
例如:如果我4 8 3 2 1进入优先级队列,它将成为优先级队列8 4 2 1 3
struct greater_even_first{
bool operator()(int a, int b) const{
if(a%2==0){
if(b%2)
return true;
else
return a>b;
}
else if(b%2==0)
return false;
return b>a;
}
};
#include<queue>
std::priority_queue<int, std::vector<int>, greater_even_first> name;
Run Code Online (Sandbox Code Playgroud)
greater_even_first 可以成为更普遍的模板.
如果你想知道它的工作原理,请阅读priority_queue文档.