|
17 / 17 / 5
Регистрация: 19.09.2012
Сообщений: 216
|
|||||||||||
Как освободить память после удаления объекта из вектора08.05.2015, 18:28. Показов 7206. Ответов 68
Метки нет (Все метки)
Всем доброго времени суток. Никак не могу понять как освободить память, после удаления объекта из вектора...
уже как только не пытался удалить элемент из networks, но память все равно не освобождается...
Может примерчик какой или мой поправить
0
|
|||||||||||
| 08.05.2015, 18:28 | |
|
Ответы с готовыми решениями:
68
Как освободить память из-под вектора объектов? Как освободить память после использования SQLite? Как освободить память после закрытия формы |
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|
| 16.05.2015, 20:43 | |
|
0
|
|
|
Комп_Оратор)
|
||||||
| 16.05.2015, 22:04 | ||||||
|
hoggy, у меня скомпилировалось с поправками:
Противоречия ссылок в классах этим не исчерпываются. Была тема в которой обсуждались различия аргументов шаблона T& и более конкретного T (&)[/*const int*/] и было весело (мне)). Что касается просто ссылок то в языке предусмотрена возможность объявления ссылок в классе. Переменная инициализируется в конструкторе. Это отличает ссылки в коде от ссылок классах/структурах. В классе ссылка объявляется как тип, а конструкторах инициализируется как псевдоним конкретной переменной. В коде же нельзя объявить и не инициализировать ссылку одновременно. Тут ссылка в классе ведёт себя как указатель. К примеру ещё, Вы можете объявить константную ссылку в классе и инициализировать её простой ссылкой (такой конструктор можно написать запросто) и потом изменить значение через экземпляр будет нельзя, а через внешнюю ссылку можно. И тут она обладает поведением указателя. Но к массивам ссылок это не имеет прямого отношения ведь? Противоречие в дизайне? Оно уже есть и приведенный Вами пример это тоже подтверждает. Массивы ссылок не слишком бы ухудшили эту ситуацию, как таковую. Причина их отсутствия более фундаментальна как я понимаю. Насколько я помню, массивы ссылок (в отличие от ссылок на массивы) объявить нельзя по иной причине. Ссылка как псевдоним требует инициализации в момент объявления в то время как указатель (как и любой нормальный тип) может быть объявлен и инициализирован в двух независимых утверждениях. Выделение памяти в С++ вещь очень быстрая и требуется конструктор по умолчанию T() для создания массива или вектора типа T. Если тип - ссылка то конструктор по умолчанию присвоил бы ей значение намертво и это бессмысленно. Это и не даёт возможности создавать такие вещи.
0
|
||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 16.05.2015, 22:19 | |||||||
|
нет требования в обязательном порядке использовать дефолтные конструкторы. и массивы, и контейнеры обычно всегда можно проинициализировать чем то осмысленным: http://rextester.com/FRBP33258
0
|
|||||||
|
Комп_Оратор)
|
||
| 16.05.2015, 22:30 | ||
|
То что я имел в виду относится именно к "старым и добрым" ссылкам.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 16.05.2015, 22:33 | ||
|
и проинициализировать их объектами. остальной текст не распарсил.
0
|
||
|
Комп_Оратор)
|
|||
| 16.05.2015, 23:00 | |||
|
2. Можно было бы? Это написать другие компиляторы? hoggy, Ваше выступление: Как освободить память после удаления объекта из вектора о ссылке на массив не имеет отношения к массивам ссылок и теме.
0
|
|||
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
|||
| 17.05.2015, 14:37 | |||
|
Добавлено через 52 минуты .
1
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 17.05.2015, 15:03 | ||
|
мне лениво опять подымать этот баян. даже на этом форуме можно глянуть расшифровки ассемблера от господина DiffEreD, которые иллюстрируют этот момент. считайте, что в отношении ссылок по умолчанию задействована политика __forceinline (cl вижал студии) или __forceinline="__attribute__((always_inl ine))" (gcc и ему подобные)
0
|
||
|
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
|
||
| 17.05.2015, 18:32 | ||
|
0
|
||
| 17.05.2015, 18:32 | |
|
Помогаю со студенческими работами здесь
69
Как освободить память (ресурс) после его использования Освободить память вектора векторов без swap
Как правильно освободить память после работы с динамическим массивом Освободить оперативную память, после удаление формы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|