Size: a a a

AI Cups Official

2020 October 15

O

Opera in AI Cups Official
Yevhen Kazmin
Да, уничтожат то, чем владеют, но разве вектор указателей почистит указатели?
Можно использовать shared_ptr
источник

YK

Yevhen Kazmin in AI Cups Official
Opera
Можно использовать shared_ptr
Ну вот мы пришли к тому, почему я хочу использовать Раст а не плюсы
источник

YK

Yevhen Kazmin in AI Cups Official
Мне больше нравятся голые указатели если честно в плюсах, больше контроля чувствую что-ли.
источник

С

Серега in AI Cups Official
Yevhen Kazmin
Мне больше нравятся голые указатели если честно в плюсах, больше контроля чувствую что-ли.
Ну вот голое без обёртки - опасно, хотя ощущения другие
источник

YK

Yevhen Kazmin in AI Cups Official
Alexander N
а откуда они знают как правильно уничтожить элементы контейнера? А если я там просто ссылки храню, а сами элементы в другом месте привязаны?
Указатель - это просто адрес данных, оно удалит где этот адрес хранится, но не данные по адресу.
источник

AN

Alexander N in AI Cups Official
вспомнил - ещё мне в плюсах не понравилось что указатели надо специальными значками обозначать. Разворачивать, сворачивать разными символами - вот это всё бесило. И так понятно где ссылочный тип а где значимый, зачем эта мешанина.
источник

YK

Yevhen Kazmin in AI Cups Official
Alexander N
а откуда они знают как правильно уничтожить элементы контейнера? А если я там просто ссылки храню, а сами элементы в другом месте привязаны?
А вот если использовать умные указатели (например shared_ptr), то оно подсчитает что на данные больше никто не ссылается и удалит данные по указателю
источник

С

Серега in AI Cups Official
Yevhen Kazmin
Указатель - это просто адрес данных, оно удалит где этот адрес хранится, но не данные по адресу.
Контейнер знает, как себя удалять. Все описано в его деструкторе. А shared_ptr  - темплейтный - знает, какой тип, и, соответственно, как себя удалять
источник

YK

Yevhen Kazmin in AI Cups Official
Alexander N
вспомнил - ещё мне в плюсах не понравилось что указатели надо специальными значками обозначать. Разворачивать, сворачивать разными символами - вот это всё бесило. И так понятно где ссылочный тип а где значимый, зачем эта мешанина.
Что такое ссылочный тип в плюсах? Там есть просто данные и указатели на данные
источник

YK

Yevhen Kazmin in AI Cups Official
И соответственно 2 операции: взять указатель и взять данные по указателю
источник

YK

Yevhen Kazmin in AI Cups Official
(на самом деле указатель - тоже данные)
источник

YK

Yevhen Kazmin in AI Cups Official
Серега
Контейнер знает, как себя удалять. Все описано в его деструкторе. А shared_ptr  - темплейтный - знает, какой тип, и, соответственно, как себя удалять
Ну вот я сделал vector<Car*>, мне же вектор не удалит машинки как положено
источник

NK

Nikita Kurgin in AI Cups Official
ud1
Что значит по лбу ударило? Стал еще больше в восторге, или наоборот?
ну огорошило, - как и в любом языке, в этом очень много тонкостей, с помощью которых можно стрелять в ноги
источник

AN

Alexander N in AI Cups Official
странно, в питоне, шарпе, делфи - везде деление на ссылочные и значимые типы, а в сях подругому?
источник

YK

Yevhen Kazmin in AI Cups Official
Alexander N
странно, в питоне, шарпе, делфи - везде деление на ссылочные и значимые типы, а в сях подругому?
В расте тоже нет деления такого
источник

С

Серега in AI Cups Official
Yevhen Kazmin
Ну вот я сделал vector<Car*>, мне же вектор не удалит машинки как положено
Мне казалось, мы имели в виду - без голых указателей вообще
источник

YK

Yevhen Kazmin in AI Cups Official
Серега
Мне казалось, мы имели в виду - без голых указателей вообще
Если без голых указателей, то вообще вектор владеет объектами и волен их сам удалить просто вызвав деструктор
источник

С

Серега in AI Cups Official
Yevhen Kazmin
Ну вот я сделал vector<Car*>, мне же вектор не удалит машинки как положено
Почему бы не vector<shared_ptr<Car>>
источник

YK

Yevhen Kazmin in AI Cups Official
Серега
Почему бы не vector<shared_ptr<Car>>
Потому что теперь у меня 2 способа сделать одно и то же (создать указатель) и мне это не нравится
источник

YK

Yevhen Kazmin in AI Cups Official
Yevhen Kazmin
Если без голых указателей, то вообще вектор владеет объектами и волен их сам удалить просто вызвав деструктор
И это скучно
источник