![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Quest_* |
![]()
Сообщение
#1
|
Гости ![]() |
Здравствуйте уважаемые программисты. У меня есть два вопроса про оператор delete.
1.) Если мы удалим указатель, который ссылается на какой-то объект, то удалиться только этот указатель ? Или объект, на который ссылается указатель, тоже удалится?? 2.) Почему в этом случае элемент вектора не удаляется ? Остается его адрес, и более того, ему присваивается какое-то значение ?
Спасибо. |
|
|
![]() |
Гость_Quest_* |
![]()
Сообщение
#11
|
Гости ![]() |
lanz, разумеется, указатели на целый тип я хранить не буду
![]() |
|
|
lanz |
![]()
Сообщение
#12
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Если это не целый тип, то интереснее подумать, кто будет "владеть" этими объектами. Тот и должен их удалять.
Если вектор владеет, то я бы посоветовал unique_ptr. Цитата может там алгоритм удаления какой быстрее или медленнее. Профилируйте, так вам никто не скажет ![]() |
|
|
Гость_Quest_* |
![]()
Сообщение
#13
|
Гости ![]() |
|
|
|
Iron Bug |
![]()
Сообщение
#14
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
По вектору лучше тоже перемещаться итератором:
Мне кажется одним C тут не отделаешься. Нужно понимать из чего состоит и как работает компьютер (хотя бы самый простой, например AVRка). Потом нужно понимать как разные языки доходят до "железа", как программы превращаются в исполняемые файлы и т.п. AVRка всё же не компьютер. микроконтроллеры гораздо проще устроены. у современных компьютеров довольно сложные чипсеты, замороченные схемы прогрузки через UEFI и это начинающему вряд ли нужно понимать в деталях. а вот цепочку превращения кода в бинарник понимать нужно в любом случае. ну и примерно о том, как код исполняется (тут тоже всё сильно зависит от архитектуры и там есть сильно разные реализации). |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 2.6.2025, 22:59 |