0
#include <iostream>
#include <map>
#include <string>
#include <vector>
#include <stack>
#include <stdio.h>
#include <list>
#include <string.h>
#include <queue>
#include <algorithm>
#define pb push_back
using namespace std;
typedef pair<int,int> ii;
struct node{
int digit;
};
class Compare{
public:
bool operator()(node* a,node* b){
return (a->digit)>(b->digit);
}
};
int main()
{
priority_queue<node*,vector<node*>,Compare> pq;
vector<node*> vec;
node* p = new node();
node* q = new node();
node* r = new node();
p->digit=100;
q->digit=200;
r->digit=300;
pq.push(p);
pq.push(q);
pq.push(r);
q->digit=50;
pq.push(nod);
while(!pq.empty()){
cout<<(pq.top())->digit<<endl;
pq.pop();
}
return 0;
}
我创建在优先级队列中的优先级队列和插入3个节点(结构),然后我改变存在于队列中的中间元素的值,但不能弄清楚如何更新元件之后更新优先级队列?如何更新std :: priority_queue内的元素?