cpp-ru/ideas

Добавить класс для heap структуры данных

blacktea opened this issue · 1 comments

В стандарте есть свободные функции для работы с heap структурой данных: make_heap, push_heap, pop_heap.
Предлагаю добавить класс с необходимом набором методов для работы со структурой, как например для flat_map, priority_queue, etc.

Преимущества:

  • Единообразие. Для flat_map, priority_queue имеются классы.
  • Более безопасно. Класс инкапсулирует контейнер, сохраняет инварианты при вставке. Пользователь может добавить элемент через push_back вместо push_heap.

Примеры использования
В ClickHouse используются эти методы, хотя и не часто. https://github.com/search?q=repo%3AClickHouse%2FClickHouse+std%3A%3Apush_heap&type=code

Полезные ссылки: