Как указано в названии, я использую std::list
. У меня есть объекты в master.list
. Затем я использую std::priority_queue
или что-то еще, называемое sortedList
для хранения указателей на объекты в моем master.list
и теперь все это отсортировано в этом sortedList
. Поскольку он отсортирован, я могу удалить их, используя sortedList.pop()
.Удаление элемента в std :: list с помощью указателя не итератора
Вопрос заключается в том, как я могу элегантно удалить объекты обратно в мой оригинальный master.list
Я хочу использовать erase
, но принимать только итератор, а я просто указатель. Потому что я хочу скорость, я действительно не хочу использовать remove
здесь.
Не храните указатели в очереди приоритетов и вместо этого храните итераторы списка. –
Керрек избил меня! –