Size: a a a

2020 October 19

<

<bits/stdc++.h>... in pro.cxx
Ребята, как получить пути ко всем файлам в директории?
источник

Е

Егор in pro.cxx
Ребята, как получить пути ко всем файлам в директории?
источник

DS

Dmitry Sokolov in pro.cxx
Alexander Tulikov
Никто и не говорит, что это лучшие практики. Это способ решения поставленной задачи как есть. Понятно, что использовать extract или перейти на map это более правильный подход.
Extract не может быть правильным подходом. Это erase/insert с поиском и перебалансировкой. Если очень надо лучше уж на intrusive тогда перейти. Или set из указателей если это просто индекс.
источник

AT

Alexander Tulikov in pro.cxx
Dmitry Sokolov
Extract не может быть правильным подходом. Это erase/insert с поиском и перебалансировкой. Если очень надо лучше уж на intrusive тогда перейти. Или set из указателей если это просто индекс.
Это подход, предлагаемый Мейерсом в упомянутой книге как универсальный. Асимптотика, если тебе надо было этот элемент искать, не изменяется.
источник

AT

Alexander Tulikov in pro.cxx
Выше уже обсуждали, что лучше изменить подход, чем пытаться в set менять значения.
источник

DS

Dmitry Sokolov in pro.cxx
Alexander Tulikov
Это подход, предлагаемый Мейерсом в упомянутой книге как универсальный. Асимптотика, если тебе надо было этот элемент искать, не изменяется.
Extract это потенциально перебалансировка. Последующая вставка это logn + опять потенциально перебалансировка. Вообще избыточна эта const'овость итераторов на мой взгляд. Всё равно есть много способов отстрелить ногу :) нетранзитивный компаратор, mutable, сравнение через указатели...
источник

D

Danya in pro.cxx
источник

C

COPY 4% in pro.cxx
Принял, понял, обработал
источник

C

COPY 4% in pro.cxx
Я сейчас подумываю над разработкой  игрового бота на плюсах, я хотел поинтересоваться корректно ли использовать плюсы для написания бота под пк игры?
источник

K

Konstantin in pro.cxx
Похоже, что этот вопрос лучше задать в @supapro (но вообще если не уверен, стоит ли что-то писать на С++ - не пиши)
источник

C

COPY 4% in pro.cxx
Konstantin
Похоже, что этот вопрос лучше задать в @supapro (но вообще если не уверен, стоит ли что-то писать на С++ - не пиши)
Понял, спасибо
источник

m

magras in pro.cxx
Dmitry Sokolov
Extract это потенциально перебалансировка. Последующая вставка это logn + опять потенциально перебалансировка. Вообще избыточна эта const'овость итераторов на мой взгляд. Всё равно есть много способов отстрелить ногу :) нетранзитивный компаратор, mutable, сравнение через указатели...
Мне тоже иногда хочется mutable set, но я не готов видеть его в проде.
источник
2020 October 20

DS

Dmitry Sokolov in pro.cxx
magras
Мне тоже иногда хочется mutable set, но я не готов видеть его в проде.
Тут же вопрос обычно в разделении на пару ключ/значение там где оно не надо. Если ключ маленький, просто делаем мап и дублируем ключ. А если что сложнее... Да тоже вариантов много, но все с разными лишними телодвижениями. Иногда даже const_cast норм :)
источник

m

magras in pro.cxx
Dmitry Sokolov
Тут же вопрос обычно в разделении на пару ключ/значение там где оно не надо. Если ключ маленький, просто делаем мап и дублируем ключ. А если что сложнее... Да тоже вариантов много, но все с разными лишними телодвижениями. Иногда даже const_cast норм :)
Да, я понимаю проблему, но мне кажется лучше иметь безопасное решение по-умолчанию. Все-таки foot gun'ы связанные с компаратором сразу вызовут вопросы на ревью и ломают не только set. А здесь еще одно место за которым нужно следить. При этом на ревью изначальной реализации это будет еще можно проконтролировать. А вот при последущей модификации кода пропустить проблему будет легко.
источник

DS

Dmitry Sokolov in pro.cxx
magras
Да, я понимаю проблему, но мне кажется лучше иметь безопасное решение по-умолчанию. Все-таки foot gun'ы связанные с компаратором сразу вызовут вопросы на ревью и ломают не только set. А здесь еще одно место за которым нужно следить. При этом на ревью изначальной реализации это будет еще можно проконтролировать. А вот при последущей модификации кода пропустить проблему будет легко.
О, надо по аналогии с transparent втащить мутабельность set через компаратор!
источник

m

magras in pro.cxx
Dmitry Sokolov
О, надо по аналогии с transparent втащить мутабельность set через компаратор!
А что за transparent?
источник

DS

Dmitry Sokolov in pro.cxx
magras
А что за transparent?
Компаратор может содержать нечто под названием is_transparent, что врубает полиморфный поиск. Т.е. поиск с использованием ключей не const key_type&
источник

DS

Dmitry Sokolov in pro.cxx
magras
А что за transparent?
Точно так же можно туда засандалить is_partial detection. Чтобы const снять с итераторов.
источник

DS

Dmitry Sokolov in pro.cxx
magras
А что за transparent?
std::less<void> как пример transparent
источник

m

magras in pro.cxx
Dmitry Sokolov
std::less<void> как пример transparent
хм. Спасибо. Надо будет еще раз посмотреть как это работает.
источник