ideas icon indicating copy to clipboard operation
ideas copied to clipboard

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

Open blacktea opened this issue 1 year ago • 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

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

  • https://en.cppreference.com/w/cpp/algorithm#Heap_operations

blacktea avatar Jun 12 '24 07:06 blacktea

Разве priority_queue не есть тот же самый heap как контейнер?

prigluchenie avatar Jul 26 '24 11:07 prigluchenie