3 return m_container.empty();
6 template <
typename T,
typename Comparator>
9 return m_container.front();
12 template <
typename T,
typename Comparator>
15 return m_container.front();
20 m_container.emplace_back(std::move(element));
21 std::push_heap(m_container.begin(), m_container.end(), Comparator{});
26 m_container.emplace_back(element);
27 std::push_heap(m_container.begin(), m_container.end(), Comparator{});
32 std::pop_heap(m_container.begin(), m_container.end(), Comparator{});
33 m_container.pop_back();
36 template <
typename T,
typename Comparator>
37 template <
typename Predicate>
40 auto removedIter = std::remove_if(m_container.begin(), m_container.end(), std::forward<Predicate>(predicate));
43 if (removedIter != m_container.end())
45 numOfRemovedElements = m_container.end() - removedIter;
46 m_container.erase(removedIter, m_container.end());
47 std::make_heap(m_container.begin(), m_container.end(), Comparator{});
50 return numOfRemovedElements;