170 похожих чатов

А если поэлементно? удалять?

39 ответов

4 просмотра

Что значит "поэлементно удалять содержимое вектора"?

Egor-Kulebyakin Автор вопроса
Dmitriy [Отпуск]
Что значит "поэлементно удалять содержимое вектора...

например, если у меня там указатели на другие объекты

Egor-Kulebyakin Автор вопроса
Egor Kulebyakin
например, если у меня там указатели на другие объе...

что в таком случае будет лучше? удалить объекты, на которые указывают указатели и clear() или так же удалить, но потом создавать новый вектор(лист)?

Egor Kulebyakin
что в таком случае будет лучше? удалить объекты, н...

Лучше создать вектор юников и прекратить усложнять себе жизнь

Egor Kulebyakin
например, если у меня там указатели на другие объе...

Или даже по васянски: for(auto& a : vec) delete[] a; // или delete a; vec.clear();

Egor Kulebyakin
нет

Упёрлись рогом?)

Egor Kulebyakin
нет

Что за такая таинственная причина не дает использовать RAII?

Egor-Kulebyakin Автор вопроса
Vlad Doc
Или даже по васянски: for(auto& a : vec) delete[] ...

у меня был практически такой же вариант

Egor Kulebyakin
у меня был практически такой же вариант

А юник_птр"ы религия запрещает использовать?

Egor-Kulebyakin Автор вопроса
Vlad Doc
А юник_птр"ы религия запрещает использовать?

нет. слышал где-то, что умные указатели замедляет работу, точно не помню, но вроде бы в каком-то из видео с А. Полухиным. А если у меня всего лишь одна структура с этими указателями, то ничего страшного в очищении памяти я тут не вижу.

Egor Kulebyakin
нет. слышал где-то, что умные указатели замедляет ...

Это чушь, в целом. Юники и весят-то почти столько же, сколько обычные указатели. Логично, что некоторый оверхед есть, но он пренебрежительно мал, по сравнению с получаемыми преимуществами

Egor-Kulebyakin Автор вопроса
Liber Azerate
Это чушь, в целом. Юники и весят-то почти столько ...

а какие преимущества для моей задачи? возможность не писать дополнительные 2-4 строчки кода для удаления?

Egor Kulebyakin
а какие преимущества для моей задачи? возможность ...

Память не потеряешь, безопасно с точки зрения исключений, всё такое... Преимущества они одинаковые. Какая у тебя задача я без понятия. Но нет выбора использовать или не использовать умные указатели, есть только выбор использовать

Egor-Kulebyakin Автор вопроса
Liber Azerate
Память не потеряешь, безопасно с точки зрения искл...

если будет исключение, то моя программа все равно закроется)

Egor-Kulebyakin Автор вопроса
Liber Azerate
Память не потеряешь, безопасно с точки зрения искл...

а если я свой умный указатель создам? для него нужны только конструктор и деструктор? если считать, что он не будет иметь каких-то доп. возможностей

Egor Kulebyakin
а если я свой умный указатель создам? для него нуж...

Ну строго говоря нет. У него как минимум должны быть удалены копирующий конструктор и присваивание

Egor Kulebyakin
как их удалить?

copy_constr(copy_constr const&) = delete;

Egor-Kulebyakin Автор вопроса
Egor Kulebyakin
не работает

Правда что ли? Покажи

Egor Kulebyakin
не работает

Как определил? Надеюсь ты не тупо вставил код, который тебе показали.

Egor-Kulebyakin Автор вопроса
Liber Azerate
Правда что ли? Покажи

https://pastebin.com/rkynwgHj тут присваивание, с копирование дополнительные ошибки

Egor-Kulebyakin Автор вопроса
std::slavik
нет

я лучше знаю как будет работать моя программа

Egor Kulebyakin
https://pastebin.com/rkynwgHj тут присваивание, с ...

Так тут у тебя нет удалённого конструктора

Egor-Kulebyakin Автор вопроса
Liber Azerate
Так тут у тебя нет удалённого конструктора

это присваивание, а не копирование

Egor Kulebyakin
это присваивание, а не копирование

У тебя нет ни присваивания, ни копирования. Только по умолчанию сгенерированные, которые надо удалить. А, ладно, присваивание есть. Ну так и с конструктором копирования сделай

Egor-Kulebyakin Автор вопроса
Egor Kulebyakin
так оно с присваиванием не работает.

Что ты ожидаешь, если ты удалил функцию?

Egor Kulebyakin
так оно с присваиванием не работает.

Конечно оно не работает, так и должно быть. Что, по-твоему, произойдёт, если ты сделаешь копирование указателя?

Egor-Kulebyakin Автор вопроса
Liber Azerate
Что ты ожидаешь, если ты удалил функцию?

её не будет. Ошибка компиляции, возможно?

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта