我还是C ++的新手。我已经将结构A推入优先级队列后,我想修改变量“change”。可以这样做吗? 这就是我试过的
pq.top().change = 200; //But it says this is only readable
这就是我所拥有的:
priority_queue<A, vector<A>, comparator> pq;
struct A{
vector<B> list;
int change = 0;
};
任何指导都会有所帮助。谢谢。
答案 0 :(得分:0)
如何将优先级队列中的对象成员推送到队列
后进行编辑
您无法修改优先级队列中对象的非可变成员,因为top
会返回一个const引用。
您可以做的是复制top
,然后复制pop
和push
修改后的副本。
或者,您可以使用可变成员,但如果您这样做,请记住Compare
不得使用该成员。