Нет.
std::priority_queue::pop
не является виртуальной функцией, поэтому даже если вы сделали ее подклассом и напишите новую, она не будет вызываться из std::priority_queue &
или std::priority_queue *
.
Если вам нужна максимальная куча, вы можете изменить один из параметров std::priority_queue
по умолчанию с std::less
на std::greater
, например
template <typename T>
using max_heap = std::priority_queue<T, std::vector<T>, std::greater<T>>;