Size: a a a

2020 December 08

AF

Aidar Fattakhov in pro.cxx
Oleg Linkin
std search тоже не может в 03 плюсах, емнип. Только в более новых его научили этому, если не ошибаюсь.
Может конечно с си++17
источник

OL

Oleg Linkin in pro.cxx
Андрей Руссков
есть кстати классный вид кейса. А-ля "если в хешмапе есть элемент, то используем, иначе вставляем вот такой"
супер кейс же, для которого как раз инзерт и придумали.
источник

АР

Андрей Руссков... in pro.cxx
потому что соптимизировать лукап можно только через emplace  проверкой итератора, но тогда надо конструировать новое значение всегда
источник

AF

Aidar Fattakhov in pro.cxx
А в contains нужен ассерт на длину параметра
источник

OL

Oleg Linkin in pro.cxx
Aidar Fattakhov
Может конечно с си++17
ну вот я и говорю, что в моем случае, наверное, разницы никакой, но хотя бы постараюсь избавиться от С-наследия в коде
источник

АР

Андрей Руссков... in pro.cxx
вот если бы был какой-нить map::insert_foo(const TKey& key, TCallable&& value_initializer); который будет конструировать нвоое значение лениво...
источник

YB

Yarique Belgorodsky in pro.cxx
Konstantin Osipov
Вроде как договорились, что если два типа - similar, то можно один читать через другой? (читать например int через указатель на unsigned int можно)
А как такое могут разрешить если переполнение unsigned не UB, чего не скажешь о signed ?)
источник

АР

Андрей Руссков... in pro.cxx
в обычном map кстати можно даже проще сделать - найти через lower_bound и использовать it как hint если значение отсутствует.
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
вот если бы был какой-нить map::insert_foo(const TKey& key, TCallable&& value_initializer); который будет конструировать нвоое значение лениво...
так можно ж сделать хелпер с operator T() { return lazy_call(...); }
источник

AF

Aidar Fattakhov in pro.cxx
Андрей Руссков
вот если бы был какой-нить map::insert_foo(const TKey& key, TCallable&& value_initializer); который будет конструировать нвоое значение лениво...
А хранить как?)
источник

AF

Aidar Fattakhov in pro.cxx
Второй тип нод?
источник

AF

Aidar Fattakhov in pro.cxx
+1 уровень индирекции
источник

АР

Андрей Руссков... in pro.cxx
Aidar Fattakhov
А хранить как?)
нет, лайфтайм лямбды же только на время вызова этого insert_foo
источник

AF

Aidar Fattakhov in pro.cxx
А, ну эт не лениво
источник

АК

Александр Караев... in pro.cxx
Андрей Руссков
вот если бы был какой-нить map::insert_foo(const TKey& key, TCallable&& value_initializer); который будет конструировать нвоое значение лениво...
подожди, так есть же try_emplace
источник

OL

Oleg Linkin in pro.cxx
Андрей Руссков
есть кстати классный вид кейса. А-ля "если в хешмапе есть элемент, то используем, иначе вставляем вот такой"
не понимаю, почему бы просто не сделать insert, проверить на true/false? Или нужно проверить один ключ, а вставить другой?
источник

АР

Андрей Руссков... in pro.cxx
Александр Караев
подожди, так есть же try_emplace
hallelujah
источник

АР

Андрей Руссков... in pro.cxx
какого черта я про него сейчас узнаю (
источник

AF

Aidar Fattakhov in pro.cxx
Александр Караев
подожди, так есть же try_emplace
Так речь про то чтобы не вызывалось
источник

АК

Александр Караев... in pro.cxx
Aidar Fattakhov
Так речь про то чтобы не вызывалось
чтобы не вызывался конструктор value, если ключ уже есть
источник