![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| hoRUS |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.5.2007 Где: Москва Репутация: нет Всего: нет |
Здрасьте всем!
Есть структура
Второй элемент структуры предполагает динамический массив, выделяемый оператором, например, new Из этих экземпляров этой структуры составляется список list<TStruktura>
Вопрос: происходит ли именно в данном случае полная очистка списка и соответствующей памяти при использовании оператора
или нужно очищать каждый элемент оператором delete[]:
З.Ы. STL только недавно стал изучать, времени нету на завершение этого процесса пока З.Ы.Ы Пишу в Билдере 10, но в данном случае это, видимо, значения не имеет Спасибо! |
||||||||
|
|||||||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
деструктор: то, что тебе нужно...
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
имхо, лучше вообще делать так:
|
|||
|
||||
| hoRUS |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.5.2007 Где: Москва Репутация: нет Всего: нет |
bsa
А не приведёт ли это к снижению скорости и нерациональному увеличению потребляемой памяти? Максимальная длина массива внутри структуры, как правило, не превышает 5 (до выполнения неизвестно). А я где-то слышал, что при создании вектора выделяется что-то типа 256 элементов и даже больше. В то же время к экземплярам этой структуры очень часто идёт обращение, они часто создаются и удаляются. Скорость очень важна - сложный физический алгоритм, здесь речь идёт не о пресловутых секундах (типа выпендреться, что расчет идет аж "на две секунды быстрее"), а о десятках минут и даже часах, реально нудно ждать. И ещё, раз уж тема начата, вопросик для любопытства. Если я реализую указатель на список
(деструктор TStruktura реализован) вызовет ли оператор
деструкторы всех элеметов типа TStruktura? Спасибо |
||||||
|
|||||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
hoRUS, если тебе так нужна скорость, то советую присмотреться к memory-poll'ам, а также, если нужна простота использования - к умным указателям: тебе вполне подойдёт шустрый std::auto_ptr с изменённой стратегией удаления(delete obj -> delete[] obj)
ну и, в конце-концов, если нужна просто реактивность, то, можно сделать массив из фиксированного числа эл-ов(5) и хранить их кол-во в отдельном поле(если это нужно - в структуре не хранится кол-во эл-ов для дин.массива Arr). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
P.S. Чего-то меня сегодня пробило, когда же меня отпустит... |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
сочинить то сочинит, только делать он будет совсем не то, что должен...
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
пример не мой
в общем случае - конечно, может делать и то, что подразумевается -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| hoRUS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.5.2007 Где: Москва Репутация: нет Всего: нет |
В общем, спасибо!
Наверно, надо правда подумать насчет статических массивов с пустыми лишними элементами, либо первый вариант. Больше наверно ничего не успею. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |