std::priority_queue::top
возвращает постоянное значение. Однако я хотел бы удалить верхний элемент из очереди приоритетов и иметь возможность изменить его где-то еще.
priority_queue<SomeClass, vector<SomeClass>, SomeClassCompare > pQueue;
...
SomeClass *toBeModified = &(pQueue.top());
pQueue.pop();
toBeModified->setMember(3); // I would like to do this
Есть ли способ, которым я могу взять верхний элемент из приоритетной очереди (и удалить из очереди) и изменить его, как я хочу?