通过引用传入优先级队列
Passing in a Priority Queue by reference
我有一个对象的优先级队列向量,在我的主.cpp中有一个自定义比较器。我有多个函数需要优先级队列,并且应该修改优先级队列。通过引用传入优先级队列的正确方法是什么?会不会使用指针?我对如何做到这一点感到非常困惑。
在我的主要情况下,我声明我的优先级队列如下:类型是 订单 vector<priority_queue<Order, vector<Order>, compLower> > buy_orders (num_equities);
我调用一个函数makeTransaction,它只处理单个优先级队列:
makeTransaction(equity_id, buy_orders[equity_id]);
但是,当我调用此函数并稍后尝试访问buy_orders
时,没有任何变化。如何通过引用传递它,以便makeTransaction
可以对buy_orders
进行必要的更改?
另外,我将如何适当地声明 makeTransaction 函数?
示例:
void my_function(std::priority_queue<MyObject>& q)
{
while(q.size() >= 10)
{
MyObject& o = q.top();
// Do something with o
q.pop();
}
}
// Call the function :
std::priority_queue<MyObject> my_queue;
// fill the queue
my_function(my_queue); // Here, my_queue will be modified
相关文章:
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 使用2个键的cpp-stl::优先级队列排序不正确
- 为什么我需要C++中不同的排序格式来对这个USACO代码上的数组和优先级队列进行排序
- 打印优先级队列
- 带自定义比较器的最小优先级队列
- 优先级队列自定义比较器
- 排序数组优先级队列
- 更改运行时优先级队列的排序功能
- 优先级队列构造函数的工作
- 实现优先级队列
- 优先级队列功能比较
- 在C++中打印对的优先级队列的所有值时出现问题
- 使用堆的优先级队列,具有相同键的值不遵循 FIFO(先进先出)
- 为什么某些 STL 容器(堆栈、队列、优先级队列)不支持迭代器?
- 是否可以使用简单队列创建优先级队列
- 如何在 c++ 中创建对的优先级队列.这会弹出具有最小值的元素.默认的弹出最大值
- Cython中带有自定义比较器的优先级队列
- 优先级队列比较器[C++].
- asio::io_service 具有多个线程的优先级队列处理