Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


1. Если есть возможность использовать STL, используйте list<...>. Там уже всё учтено (если, конечно то, что в угловых скобках грамотно написано, т.е. имеет конструкторы и деструктор). В делфи 5 и далее есть динамический массив, основанный на особенности выделения страничной памяти в Windows. Задаётся размер адресного пространства, занимаемый массивом и защищается NO_ACCESS. При попытке записать в защищённую память она автоматически выделяется.

2. Например list<list<list<double> > >. Непонятно, зачем это может понадобиться, тем не менее - это дин.спис. из дин.спис. из дин.спис. из вещественных.
В STL в любом контейнерном классе есть возможность расти в объёме. Можно наример сделать так:
Код: Выделить весь код
void foo() {
   vector<auto_ptr<TListBox> > listboxes;
   listboxes.resize(10);
   for(int i=0; i<listboxes.size(); i++) listboxes[i].reset(new TListBox);

   listboxes.resize(20);
   for(int i=10; i<listboxes.size(); i++) listboxes[i].reset(new TListBox);
}

...
foo();
// здесь все listbox-ы самоуничтожатся
// указателей на указатели не используется
// выгодно для доступа, но тормозит при добавлении и удалении в середине списка

Отправлено: 10:57, 14-12-2004 | #6