Из C++ Primer, а также https://en.cppreference.com/w/cpp/container/priority_queue, я знаю:
Priority_queue требует произвольного доступа в дополнение к фронту, push_back и pop_back;
Я также прочитал это сообщение в блоге от Google и знаю:
- push: добавьте новый элемент в очередь,
- pop: удалить самый большой элемент очереди,
- top: доступ к самому большому элементу очереди.
push
должен быть реализован push_back
, без проблем. И pop
и top
похоже, работают на одном элементе. Один из них - доступ к нему, другой - его удаление. Поэтому я думаю, что эти две операции должны быть реализованы с помощью pop_front()
и front()
или pop_back()
и back()
.
Поэтому я смущен, почему требования front()
и pop_back()
?
Пусть, например, предположим, что основной контейнер представляет собой vector
а некоторые элементы int позволяют сказать 1,2,3,4,5,6
. Как интерфейс адаптера " pop()
, top()
" работает с базовыми " front()
, pop_back()
"?