Size: a a a

2020 July 15

IL

Ignat Loskutov in pro.cxx
ну он дополнительный проход делает, этого вроде как хочется избежать
источник

IL

Ignat Loskutov in pro.cxx
не говоря о том, что требует больше
источник

AT

Andrew Titov in pro.cxx
ranges::set_union(ranges::unique(first), ranges::unique(second))

или

ranges::unique(ranges::set_union(first, second))
источник

O

Ofee in pro.cxx
Constantine Drozdov
inspect proposal? :)
Я искренне надеюсь, что он будет разбит на несколько более вразумительных частей по-меньше, ко второй половине пропозала уже выглядит инопланетно и нечитаемо, я бы предпочёл иметь только библиотечный паттерн-матчинг, чем такой языковой
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
который из двух?
Оба. Почему в нём повторящиеся элементы разные, а на выходе операции их должны сократить? Вы хотите сделать set_union(unique(arg1), unique(arg2)), но почему это вообще должно записываться одной операцией
источник

AT

Anatoly Tomilov in pro.cxx
Andrew Titov
ranges::set_union(ranges::unique(first), ranges::unique(second))

или

ranges::unique(ranges::set_union(first, second))
пока мне рано такое)
источник

AT

Anatoly Tomilov in pro.cxx
Constantine Drozdov
Оба. Почему в нём повторящиеся элементы разные, а на выходе операции их должны сократить? Вы хотите сделать set_union(unique(arg1), unique(arg2)), но почему это вообще должно записываться одной операцией
потому что это можно. И это можно сделать за меньшее количество операций и память, чем merge+unique или set_union+unique
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
потому что это можно. И это можно сделать за меньшее количество операций и память, чем merge+unique или set_union+unique
а еще меньше памяти займет их не хранить сразу :)
источник

CD

Constantine Drozdov in pro.cxx
в любом случае, задача должна решаться фильтром на итераторах перед вызовов set_union
источник

CD

Constantine Drozdov in pro.cxx
таких фильтров до ranges я не знаю
источник

AT

Anatoly Tomilov in pro.cxx
нет, ну серьёзно. Аргумент про что-то там семантическое неверное — несостоятелен совершенно (по крайней мере в любом контексте). Можно сделать оптимальнее — да. Нет оптимального алгоритма в стандартной библиотеке — да.
источник

CD

Constantine Drozdov in pro.cxx
Anatoly Tomilov
нет, ну серьёзно. Аргумент про что-то там семантическое неверное — несостоятелен совершенно (по крайней мере в любом контексте). Можно сделать оптимальнее — да. Нет оптимального алгоритма в стандартной библиотеке — да.
почему? с тем же успехом в C++ gc нет
источник

AT

Anatoly Tomilov in pro.cxx
и симуляции реального мира в C++ тоже нет. Увы
источник

CD

Constantine Drozdov in pro.cxx
и нельзя без промежуточной переменной float как int прочитать
источник

RR

Roman Rubanenko in pro.cxx
Анатолий, а списки предварительно каким образом упорядочились? С большой вероятностью даже мердж+юник не будет узким местом
источник

RR

Roman Rubanenko in pro.cxx
Или у вас чисто спортивный интерес?
источник

CD

Constantine Drozdov in pro.cxx
там небось input iterator вообще на входе
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
Ignat Loskutov
в operator++ инкрементировать нижележащий итератор, пока не найдётся отличный от текущего элемент или end
Мне почему-то казалось, что это есть в рэнжах
источник

IL

Ignat Loskutov in pro.cxx
да, писать свой view::unique не нужно, если под рукой есть уже написанный, это вроде как очевидно
источник

CD

Constantine Drozdov in pro.cxx
но да, компрессить sort+unique намного логичнее, чем set_union+unique+unique
источник