cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавить Policy Based Data Structures #209

Open apolukhin opened 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +15, -1 Автор идеи: adamant

Добавить в стандарт PBDS из SGI STL.

По мотивам #166.

В SGI STL была проделана масштабная работа по описанию и реализации Policy Based Data Structures. Было бы здорово иметь эту вещь в стандарте.

Мануал

apolukhin commented 3 years ago

adamant, 28 июля 2017, 14:45 Чуть подробнее: Библиотека pbds -- гибкий инструмент для работы со сбалансированными двоичными деревьями с возможностью поддержки различного рода метаданных (размеры поддеревьев, какие-то функции от элементов поддерева, задаваемые пользователем), а также базовых операций (split, merge), выполняемых за O(log n). Кроме того, встроенные шаблоны политик включают в себя команды order_of_key и find_by_order, которых сильно недостаёт стандартным set и map.

yndx-antoshkka, 2 августа 2017, 15:08 Создать и описать новые контейнеры - это очень тяжёлая работа. Если готовы идти до конца, то для начала обсудите идею на std-proposals форуме (он есть в полезных ссылках на этом сайте).

С написанием предложения помогу, но основная работа будет на вас.

Alexander Kulkov, 9 августа 2017, 4:05 А в чём заключается эта основная работа?

yndx-antoshkka, 9 августа 2017, 13:42 Alexander Kulkov, основная работа заключается в том, чтобы для каждого предложенного контейнера пройтись по секциям [container.requirements.general] и [sequence.reqmts]/[associative.reqmts]/[unord.req] и убедиться что они не нарушают требования для контейнеров. Так же надо будет проанализировать, каких новых фичей не хватает в контейнере (rvalue references, поддержка node, push() возвращающих ссылку или итератор и т.п) и добавить их по возможности.

adamant, 9 августа 2017, 16:40 https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/O6d0iPVnUhc