Size: a a a

2021 February 03

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Ну если компаратор транзитивный, так оно и есть. И если он транзитивный, то для map он не может вернуть более одного элемента (если сравнение по key_type).
Аргумент для equal_range transparent не компаратор, а специальный
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Аргумент для equal_range transparent не компаратор, а специальный
Там отдельные имплементации ж в любом случае, по произвольному ключу запрещено для не transparent. Ну и в libcxx соптимизировали по ключу для map.
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Аргумент для equal_range transparent не компаратор, а специальный
Так то можно например написать transparent comparator для пар который заодно сможет сравнивать по first. И через equal_range(FirstType) получать диапазоны с одинаковым key.first.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Так то можно например написать transparent comparator для пар который заодно сможет сравнивать по first. И через equal_range(FirstType) получать диапазоны с одинаковым key.first.
Я понимаю, да
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Так то можно например написать transparent comparator для пар который заодно сможет сравнивать по first. И через equal_range(FirstType) получать диапазоны с одинаковым key.first.
Можно еще в этом случае компаратор, выдающий нетранзитивное равенство, использовать :)
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Так то можно например написать transparent comparator для пар который заодно сможет сравнивать по first. И через equal_range(FirstType) получать диапазоны с одинаковым key.first.
есть такая известная в узких кругах штука max(lhs.second, lhs.first + rhs.second) <=> max(rhs.second, rhs.first + lhs.second)
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Можно еще в этом случае компаратор, выдающий нетранзитивное равенство, использовать :)
Ну и вот поиск upper_bound итерацией это мне кажется баг:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_tree.h#L1407
Может я например разложил числа типа четные налево, нечетные направо и через equal_range получаю диапазоны чётный/нечётный. Это ж половину дерева придется обойти.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Ну и вот поиск upper_bound итерацией это мне кажется баг:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_tree.h#L1407
Может я например разложил числа типа четные налево, нечетные направо и через equal_range получаю диапазоны чётный/нечётный. Это ж половину дерева придется обойти.
хм... а это не сломается уже на нормальном запросе transparent компаратора для мультимапы из одинаковых элементов?
источник

CD

Constantine Drozdov in pro.cxx
в любом случае крякает багом (должно быть в точности как в обычном случае)
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
хм... а это не сломается уже на нормальном запросе transparent компаратора для мультимапы из одинаковых элементов?
Не, там по сравнениям то смысл тот же самый что и в upper_bound.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Не, там по сравнениям то смысл тот же самый что и в upper_bound.
нельзя в мультимапе итерировать весь range, ответ может быть вся мапа
источник

АФ

Артем Фатеев... in pro.cxx
Прошу прощения)
А может вы подскажите чат, в котором можно выставлять данную информацию?
источник

SA

Sergey Anisimov in pro.cxx
Я так понимаю, Вам следует обратить внимание на это:
Объявления о вакансиях и евенты - в лс @AlexFails
О местном чате по шарпу, увы, не слышал (подозреваю, впрочем, что такой есть).
источник

АФ

Артем Фатеев... in pro.cxx
Понял, спасибо)
источник

D

Danya in pro.cxx
Sergey Anisimov
Я так понимаю, Вам следует обратить внимание на это:
Объявления о вакансиях и евенты - в лс @AlexFails
О местном чате по шарпу, увы, не слышал (подозреваю, впрочем, что такой есть).
@pro_net
И куча других в @it_chats
источник

АР

Андрей Руссков... in pro.cxx
Dmitry Sokolov
Ну и вот поиск upper_bound итерацией это мне кажется баг:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_tree.h#L1407
Может я например разложил числа типа четные налево, нечетные направо и через equal_range получаю диапазоны чётный/нечётный. Это ж половину дерева придется обойти.
при этом по идее стандарт гарантирует ассимптотику операций )
источник

АР

Андрей Руссков... in pro.cxx
в этом то и заключается мой изначальный вопрос
источник

АР

Андрей Руссков... in pro.cxx
если упорядоченный контейнер отсортирован по Compare1, а мы делаем transparent операции по Compare2, где упорядоченность по Compare1 гарантирует упорядоченность по Compare2, но не наоборот, то сохраняются ли все наши гарантии?
источник

АР

Андрей Руссков... in pro.cxx
кажется что например гарантия "equal_range выполняется за log N" уже не работает для некоторых stl
источник

the ы in pro.cxx
Всем доброго времени суток! Какие книжки порекомендуете для изучения C++ (язык обучения не имеет значения)? Я хотел бы выучить C++20' для создания приложений для ПК или может быть посмотрю на алгоритмы/UE4...
Огромное спасибо!!
источник