Ivan
Это что
Anton
сортировка за O(n*n!)
Ivan
Не
Ivan
Ты бы ещё Rand sort
cyberzx 🇷🇺
нет. за O(max(args))
cyberzx 🇷🇺
тут вообще не за N
cyberzx 🇷🇺
а, ты про богосорт
Anton
Ivan
А ок
Anton
А так список сортировок мне отсюда нравится: http://neerc.ifmo.ru/wiki/index.php?title=Сортировки
Anton
хотя он не полный
Vergil
ещё не выходило книг по семнадцатым плюсам?
Vergil
ну кроме спецификации
Anonymous
Vergil
вроде как утвердили и скоро собираются обсуждать 20++
Anonymous
Vergil
ща гляну. мож ошибся датой
Vergil
таки да
Vergil
стандарт принят
Anonymous
Ясненько
Vergil
остается только ждать реализации полные
Vergil
и книжки почитать)
Alexander
посмотрите пожалуйста, это корректное использование unique_ptr + move semantics? в этом коде мне необходимо добиться того, что-бы некторый Item перемещенный в Inventory само-уничтожился в тот момент, когда он будет удален из контейнера. В этом примере объявлено два Item, один из них удалется во время иттерирования, а другой нет. Судя по логу работает так, как я и предполагаю, есть какие-то подводные камни в таком подходе?
http://dumpz.org/2625482/
RattenKong 🦧🐀🦍️
auto&& у make_shared?
RattenKong 🦧🐀🦍️
вы знаете значение?(au to)
Alexander
ну конечно, очевидно же - uniq_ptr<T> где T в моем случае - Item
Александр
Всё норм с auto&&
Олександр
Что-то не так с циклом
Alexander
Олександр
Я бы делал return из if
Олександр
Или логика в удалении подобных?
Alexander
почему? а если в нем больше одного предмета с одинаовым именем?
Олександр
Я понял
Олександр
Ну и enum вместо строк
Alexander
да суть примера - механика работы uniq_ptr + move semantics
Alexander
Я понял
а если предметов 1000+
Alexander
?
Alexander
да кароче не суть как хранить это, вопрос просто в другом)
Олександр
1000+ классов?
Alexander
нет, 1000 предметов с разными именами
Alexander
1000 экземпляров класса
RattenKong 🦧🐀🦍️
Олександр
RattenKong 🦧🐀🦍️
а не просто l-value
Олександр
Разве не rvalue?
Alexander
да блин, какая разница мы не об этом сейчас)
Alexander
это код демонстрирует прототип проблемы из большого проекта, нет задачи оптимизировать циклы
Олександр
RattenKong 🦧🐀🦍️
то есть <typename T>foo(T&& bar); не то же самое что foo(obj&& bar);
Олександр
RattenKong 🦧🐀🦍️
оно может быт ькак rvalue, так и lvalue ссылкой
RattenKong 🦧🐀🦍️
мне кажется, что это обязательный вопрос на собеседованиях с плюсами 11+
Олександр
RattenKong 🦧🐀🦍️
погугли universal reference
Yaroslav
https://stackoverflow.com/questions/13230480/what-does-auto-tell-us
Yaroslav
Вот тут хорошо объясняется
Yaroslav
auto&& может быть как lvalue, так и rvalue
RattenKong 🦧🐀🦍️
reference забыл!!
Yaroslav
Но вообще в примере цикл заменяется на std::remove_if =)
Yaroslav
Что касается move semantics, то все ок
Yaroslav
но есть emplace)
Олександр
👆
В примере не нужен unique_ptr, ибо используется только в контейнере
Alexander
Yaroslav
Alexander
но есть emplace)
пример упрощен, в реальном коде работа идет с интерфейсов у которого нет emplace
Alexander
^^ ну по мне дак итератор выглядит понятнее)
Олександр
Alexander
ну вот я это и делаю в примере, что скинул
Alexander
просто тут push_back а в реальном коде add через интерфейс
Alexander
суть - передать ownership и при удалении не облажаться
Yaroslav
в общем, имхо, с ownership там все ок
Anonymous
люди а че @procxxlib пустой?
Alexander
Олександр
@AlexFails не пилит бота