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 🦧🐀🦍️
ну вот, зря гуглил(
Nikolai
но часто ли это нужно? Лучше бы ахо-корасика запилили
Надо вставлять то, что используется повсеместно. А рад "чтобы было" - нафиг
RattenKong 🦧🐀🦍️
Надо вставлять то, что используется повсеместно. А рад "чтобы было" - нафиг
мне кажется иметь изкоробки линейный поиск нескольких образцов весьма хорошая вещь
Шаурма
наверное сначала добавляют аст в компилятор, потом тестят, потом ищут причины почему не clang
Nikolai
Суть в том, что что мешает взять реализацию для проекта и использовать ее. Не вижу проблемы в этом
RattenKong 🦧🐀🦍️
или подрубать хедеры-сорцы ради одной функции
Nikolai
Потому что это в бизнес сегментах все идет медленно. Вон, запилил они студию под мак, один фиг как не могешь на ней в с++ так и не будешь. Все пихают свой С#
🦥Alex Fails
Они еще не обвели их рамочкой и не щелкнули правой кнопкой мышки
RattenKong 🦧🐀🦍️
модные штуки из 80-90ых....
Square
Почему?
🦥Alex Fails
А чем он лучше тупого бинпоиска?
🦥Alex Fails
Тимсорт!
RattenKong 🦧🐀🦍️
А чем он лучше тупого бинпоиска?
то что тебе не нужна отсортированная последовательность
Nikolai
Потому что бывает, что для себя ты уже подготовишь нужные данные на вход, а для алгоритма из класса, чаще всего, надо все готовить
Square
А ты один его пилишь?
Nikolai
Вот поэтому она и не закончится - чувство прекрасного у каждого извращено по своему)
Nikolai
вот я так подумал, что единственное что остается - пилить ИИ, который будет модифицировать интерфейсы под конечного пользователя, но это ахинея получается
Nikolai
ну а что?))) Мои внуки будут жить а STL не будет нормальным))) Я уже смирился с этим
🐙 Antony
У них были проблемы в архитектуре компилятора. Изначально было сделано не совсем по правилам (см двухфазный поиск в msvc), а чтобы это починить и сделать совершенно верно требуется очень много времени. Без этого - нет возможности делать некоторые новые С++ вещи. Сейчас вроде почти дочинили, НО constexpr - самая сложная часть C++11 для имплементации. так что будут еще мучаться какое-то время с ним
🐙 Antony
жаль :(
Square
Деревья поиска
Square
Или суффиксные, как они там правильно:)
🐙 Antony
shuffle_weighted_n shuffle_weighted Могу даже скинуть приблезительную имплементацию, но она O(N*N) в худшем случае
Square
Короче для паттерн матчинга
🐙 Antony
рандомно перемешать с учётом веса
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 🦧🐀🦍️
и оан быстрее мэпы со стрингами все равно
Nikolai
Потому что могут. То есть не могут. Сорцы vc то еще удовольствие
Раз ты копался - компилятор студийный сильно отличается от того, что идет в составе win developer sdk?
Nikolai
Чот не приходило в голову сравнивать такие вещи
То, что они отличаются - это точно. В студии еще отладчик хитрый - ловить крахи может на этапе запуска, а вот внешние - не всегда
RattenKong 🦧🐀🦍️
она вообще подразумевает, что работа происходит с типом данных у которых можно взять разряд, т.е. уже усложняет темплейт
RattenKong 🦧🐀🦍️
я попробую просто сделать темплейт версию для начала...
RattenKong 🦧🐀🦍️
и сделать такой же интерфейс и впихуть туда несчастную структуру?
🐙 Antony
Если будут желающие доработать проект, то могу помочь советом с Boost.Trie Там есть несколько сложных вещей, которые необходимо сделать, чтобы производительность была на пару порядков выше
RattenKong 🦧🐀🦍️
копаться в сорсах темплейт библиотек веселое дело само по себе
🐙 Antony
там надо сдлеать очень хитрое низкоуровневое адище - добавить новый тип нодов - листья. Эти ноды должны хранить необщую часть дерева одним куском а не в виде односвязного списка. За счёт этого увеличится локальность данных и уменьшится количество аллокаций
RattenKong 🦧🐀🦍️
а, типа сжать листья?
RattenKong 🦧🐀🦍️
этим поцаны придумавшие трай задумались и сжали просто значения
RattenKong 🦧🐀🦍️
*патрицию
RattenKong 🦧🐀🦍️
узлы то есть....
RattenKong 🦧🐀🦍️
Ой
RattenKong 🦧🐀🦍️
RattenKong 🦧🐀🦍️
вот такие магии с числами не есть хорошо
RattenKong 🦧🐀🦍️
но это очень оптимизированное взятие бита
RattenKong 🦧🐀🦍️
в строке
ivn
index - это ... ?
RattenKong 🦧🐀🦍️
ой, хедере забыл не вырезать