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

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

39 ответов

16 просмотров

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

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
Что ты ожидаешь, если ты удалил функцию?

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта