В отличие от std::vector
и std::unordered_map
, которые являются контейнерами, std::priority_queue
является адаптером контейнера.Он содержит контейнер и предоставляет к нему специальный доступГлядя на подходящую ссылку , вы можете видеть, что второй параметр шаблона std::priority_queue
является контейнером (std::vector
по умолчанию).Так что вам просто нужно передать свой собственный контейнер с пользовательским распределителем:
std::priority_queue<T, std::vector<T, MyAllocator>> q;