在优先级队列被推送到队列后,如何编辑对象成员
How can I edit object members in a priority queue once it has been pushed onto the queue
我还是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;
};
任何指导都会有所帮助。谢谢。
将优先级队列中的对象成员推送到队列后,如何编辑该对象成员
不能修改优先级队列中对象的不可变成员,因为top
返回 const 引用。
您可以做的是 制作top
的副本,然后pop
它,并push
修改后的副本。
或者,您可以使用可变成员,但如果这样做,请记住Compare
不得使用该成员。
相关文章:
- boost::进程间消息队列引发错误
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- Android NDK传感器向事件队列报告奇怪的间隔
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 使用2个键的cpp-stl::优先级队列排序不正确
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 在一个读写器队列中,我可以用volatile替换原子吗
- 为什么我的多线程作业队列崩溃
- 编辑文件中的文本
- 尝试将lambda函数放在队列中时出现一般分配器错误(可能是与unique_ptr有关的错误)
- 使用"Task"函数指针队列定义作业管理器
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 在c++队列中使用pop和visit实现线程安全
- 为什么我需要C++中不同的排序格式来对这个USACO代码上的数组和优先级队列进行排序
- 获取错误:之前在此处声明的布尔队列的编辑<T>
- 在优先级队列被推送到队列后,如何编辑对象成员
- 从队列中编辑元素而不将其删除
- 在C++推送到队列后,如果我在之后编辑该项目数据,它会影响队列中的数据