![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Breezy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.8.2003 Репутация: 1 Всего: 1 |
Я не великий знаток стл-я но пишу контейнер дружелюбный с стл-м и вот появляються проблемы с памятью.
Как обнаружилось то алокатор не вызывает конструктор класса, хотя страуструп пишет что он использует оператор new,delete которые это делают. Вот и вопрос: что надо вручную инициализировать обекты? И вообще стоит использовать алокатор? ведь можно обойтись new,delete? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Breezy, Если ты пишешь свой контейнер, то испольование аллокаторов исключительно твой выбор. Хочешь используй, хочешь нет. В stl контейнерах память может и выделяется через new, но не обязтельно при этом, что будут вызваны конструкторы объектов. За это в последствии отвечает сам код контейнера, который вызывает размещающий оператор new для выделенной аллокатором памяти. Ты же можешь для простоты вызывать обычный new (и соответсвенно delete).
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
весь вопрос в повторности используемого кода при использовании аллокатора появляется гибкость работы с памятью, т. е написав новый аллокатор мы в корне меняем управление выделением памяти для объектов контейнера при этом затратив минимум усилий (если их вообще придется затрачивать) на переделку самого контейнера -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Breezy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.8.2003 Репутация: 1 Всего: 1 |
А в чем собственно гибкость аллокатора перед new? создаеш контейнер все что внутри конечного пользователя не касаеться...
Может аллокатор нужен для других целей? Мне лично привычней использовать new, код тоже будет проще писать, меньше мороки... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Breezy,
Как сказал уже MAKCim - аллокатор добавляет гибкости. Разные аллокаторы могут по разному выделять память: из разных областей(кучи, стека и т.д.), разными блоками, адаптированными к размерам элементов. Вобщем позволяют улучшить работоспособность контейнера незаметным для него образом. |
|||
|
||||
| Breezy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.8.2003 Репутация: 1 Всего: 1 |
Тоесть морока на стадии проектирования стоит выделки. С этим разобрался.
И еще вопросик |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |