我的任务是重新排列数组,以使与值k
最接近的数字在priority_queue
中具有更高的优先级。
我曾经尝试过这段代码,但是似乎我无处放置参数:
#include <iostream>
#include <Windows.h>
#include <queue>
#include <math.h>
using namespace std;
bool cmp(int a, int b, int k) {
return (abs(a - k) < abs(b - k));
}
void main() {
priority_queue<int, vector<int>, decltype(cmp)> a;
}
答案 0 :(得分:0)
cmp
是带有operator()(int a, int b)->bool
#include <iostream>
#include <queue>
#include <cmath>
using namespace std;
struct cmp
{
bool operator()(int a, int b)
{
return (abs(a - k) < abs(b - k));
}
int k = 5;
};
int main()
{
priority_queue<int, vector<int>,cmp> a;
}