8 using Base = std::vector<T>;
9 using iterator = Base::iterator;
10 using const_iterator = Base::const_iterator;
16 [[nodiscard]] T pop() {
17 std::pop_heap(mC.begin(), mC.end(), Comparator{});
18 T result = std::move(mC.back());
23 [[nodiscard]] T& top() {
return mC.front(); }
24 [[nodiscard]] T
const& top()
const {
return mC.front(); }
26 [[nodiscard]]
bool empty() {
return mC.empty(); }
28 [[nodiscard]]
size_t size() {
return mC.size(); }
30 [[nodiscard]] const_iterator begin()
const {
return mC.begin(); }
32 [[nodiscard]] const_iterator end()
const {
return mC.end(); }
34 [[nodiscard]] iterator begin() {
return mC.begin(); }
36 [[nodiscard]] iterator end() {
return mC.end(); }
38 [[nodiscard]] Base& getInternalContainer() {
return mC; }
40 void clear() { mC.clear(); }
42 void resort() { std::make_heap(mC.begin(), mC.end(), Comparator{}); }