Surreal
Так они еще с реализацией определиться не могут. Ладно хоть согласились совсем дряной код переписать и запихать его в std2
Surreal
Я, правда, вижу уже какой-нибудь говнокод, типа:
std::vector<bool> vbool2Tovbool(const std2::vector<bool> &v) {...}
RattenKong 🦧🐀🦍️
все ради олимпиадных погрмоистов!
Danil
зачем им ваш этот с++
RattenKong 🦧🐀🦍️
просто часто ли нужен поиск единичного экземпляра с препроцессингом?
Danil
кмп ван лав
RattenKong 🦧🐀🦍️
он в любом случае быстрее серча, да
RattenKong 🦧🐀🦍️
но часто ли это нужно? Лучше бы ахо-корасика запилили
Square
Меряетесь кто знает больше алгоритмов?)
Square
Хоть что то завезли - уже норм
RattenKong 🦧🐀🦍️
вроде можно свою функцию поиска запихнуть, если моя памят ьменя не подводит
RattenKong 🦧🐀🦍️
ах ты!
RattenKong 🦧🐀🦍️
в серчер 17 плюсов
RattenKong 🦧🐀🦍️
лет ми гугл зет щит
RattenKong 🦧🐀🦍️
http://en.cppreference.com/w/cpp/experimental/search
RattenKong 🦧🐀🦍️
ну вот, зря гуглил(
RattenKong 🦧🐀🦍️
Шаурма
наверное сначала добавляют аст в компилятор, потом тестят, потом ищут причины почему не clang
Nikolai
Суть в том, что что мешает взять реализацию для проекта и использовать ее. Не вижу проблемы в этом
RattenKong 🦧🐀🦍️
или подрубать хедеры-сорцы ради одной функции
Nikolai
Потому что это в бизнес сегментах все идет медленно. Вон, запилил они студию под мак, один фиг как не могешь на ней в с++ так и не будешь. Все пихают свой С#
🦥Alex Fails
Они еще не обвели их рамочкой и не щелкнули правой кнопкой мышки
RattenKong 🦧🐀🦍️
модные штуки из 80-90ых....
Square
Почему?
🦥Alex Fails
А чем он лучше тупого бинпоиска?
🦥Alex Fails
Тимсорт!
Nikolai
Потому что бывает, что для себя ты уже подготовишь нужные данные на вход, а для алгоритма из класса, чаще всего, надо все готовить
Square
А ты один его пилишь?
Nikolai
Вот поэтому она и не закончится - чувство прекрасного у каждого извращено по своему)
🦥Alex Fails
Nikolai
вот я так подумал, что единственное что остается - пилить ИИ, который будет модифицировать интерфейсы под конечного пользователя, но это ахинея получается
Nikolai
ну а что?))) Мои внуки будут жить а STL не будет нормальным))) Я уже смирился с этим
🐙 Antony
У них были проблемы в архитектуре компилятора. Изначально было сделано не совсем по правилам (см двухфазный поиск в msvc), а чтобы это починить и сделать совершенно верно требуется очень много времени. Без этого - нет возможности делать некоторые новые С++ вещи.
Сейчас вроде почти дочинили, НО constexpr - самая сложная часть C++11 для имплементации. так что будут еще мучаться какое-то время с ним
🐙 Antony
жаль :(
Square
Деревья поиска
Square
Или суффиксные, как они там правильно:)
🐙 Antony
shuffle_weighted_n
shuffle_weighted
Могу даже скинуть приблезительную имплементацию, но она O(N*N) в худшем случае
Square
Короче для паттерн матчинга
🐙 Antony
рандомно перемешать с учётом веса
Square
И чтоб в качетстве паттерна - маску можно было или регекс простенький :)
Square
Square
Ненене
RattenKong 🦧🐀🦍️
о, было бы топ PATRICIA запилить
Square
Автомат для поиска паттернов-масок/регексов.
Который всмысле не зависит от количества шаблонов
RattenKong 🦧🐀🦍️
правда это специфично для типов у которых можно взять разряд
RattenKong 🦧🐀🦍️
это trie + radix tree грубо говоря
RattenKong 🦧🐀🦍️
у тебя в узле хранится ключ, сравнение происходит взятием j-го разряда и сравнением с таким же по порядку образца
Square
Ну затем же зачем вообще префиксные деревья юзать
RattenKong 🦧🐀🦍️
в итоге оче круто для длинных строк
RattenKong 🦧🐀🦍️
её в ллвм юзают для ип-масок
Nikolai
куда я попал... Мне и стандартных хватает)
RattenKong 🦧🐀🦍️
поиск за O(klog(N)), k - количество разрядов
Aleksei
Кроме мозга
Nikolai
Я один раз сломал мозг, когда осознал как скриптовые языки работают) Я не хочу)
Berkus
Потому что могут. То есть не могут. Сорцы vc то еще удовольствие
RattenKong 🦧🐀🦍️
и при этом можно легко реализовать поиск по префиксу совпадающему из-за сравнения(возращать ключ с наиболее совпадающим префиксом)
RattenKong 🦧🐀🦍️
ну да, у меня есть нешаблонная гвонокодистая реализация
RattenKong 🦧🐀🦍️
и оан быстрее мэпы со стрингами все равно
Berkus
RattenKong 🦧🐀🦍️
она вообще подразумевает, что работа происходит с типом данных у которых можно взять разряд, т.е. уже усложняет темплейт
RattenKong 🦧🐀🦍️
я попробую просто сделать темплейт версию для начала...
RattenKong 🦧🐀🦍️
и сделать такой же интерфейс и впихуть туда несчастную структуру?
🐙 Antony
Если будут желающие доработать проект, то могу помочь советом с Boost.Trie
Там есть несколько сложных вещей, которые необходимо сделать, чтобы производительность была на пару порядков выше
RattenKong 🦧🐀🦍️
копаться в сорсах темплейт библиотек веселое дело само по себе
🐙 Antony
там надо сдлеать очень хитрое низкоуровневое адище - добавить новый тип нодов - листья. Эти ноды должны хранить необщую часть дерева одним куском а не в виде односвязного списка. За счёт этого увеличится локальность данных и уменьшится количество аллокаций
RattenKong 🦧🐀🦍️
а, типа сжать листья?
RattenKong 🦧🐀🦍️
этим поцаны придумавшие трай задумались и сжали просто значения
RattenKong 🦧🐀🦍️
*патрицию
RattenKong 🦧🐀🦍️
узлы то есть....
RattenKong 🦧🐀🦍️
Ой
RattenKong 🦧🐀🦍️
RattenKong 🦧🐀🦍️
вот такие магии с числами не есть хорошо
RattenKong 🦧🐀🦍️
но это очень оптимизированное взятие бита
RattenKong 🦧🐀🦍️
в строке
ivn
index - это ... ?
RattenKong 🦧🐀🦍️
ой, хедере забыл не вырезать