Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Что такое std::allocator<T> ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с двумя классами http://www.cyberforum.ru/cpp-beginners/thread446984.html
А)Базовый класс Б)Класс наследник А) Список списков с информацией об объектах сгруппированных по типу - продуктах питания: название, тип (мясо, рыба, крупа, фрукт, специя и т.д. и т.п.), форма...
C++ Палиндром ввод с клавиатуры Доброго времени суток:) Напишите программу,которая читает пятизначные целые и определяет,являются ли они палиндромами(пример палиндрома 12321,55555,41114).Решить без юзания массивов. Задача из... http://www.cyberforum.ru/cpp-beginners/thread446982.html
C++ Не работает в release
Доброго времени суток, Столкнулся со следующей проблемой: При выполнении Debug Build - MFC программа работает корректно. Собираю Release build. Запускаю exe из папки Release. Окно запускается,...
C++ Не работает программма "перевертыш"
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например "приветмир" а она тебе выдает "римтевирп". Написал код, скомпилировал а она...
C++ первый шаг он трудный самый! http://www.cyberforum.ru/cpp-beginners/thread446936.html
Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге написано создать свою первую программу, которая выглядит так: #include <iostream.h> void...
C++ задача на minmax Дано целое число N (> 1) и набор из N чисел. Найти номера двух соседних чисел из данного набора, произведение которых является мини- мальным, и вывести вначале меньший, а затем больший номер. подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4985 / 3042 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
16.02.2012, 07:37
HardMorg, стандартный аллокатор просто-напросто выделяет память так же, как это делалось бы вручную через new. Штука в том, что вы можете написать собственный аллокатор, который работает иначе (но, разумеется, сохраняет интерфейс стандартного), так, как нужно вам в конкретной задаче. Тогда его можно будет использовать в стандартных контейнерах так же, как и стандартный библиотечный аллокатор.
Ещё одной особенностью аллокатора является то, что он разделяет выделение памяти и инициализацию объекта, а также освобождение памяти и удаление объекта. Т.е. при вызове метода allocate память выделяется, но конструктор не вызывается (вызывается операторная форма new, не вызывающая конструктора, а работающая как malloc). А вот конструктор объекта вызывается только по вызове метода construct при помощи placement new. То же с методами deallocate(освобождает память при помощи операторной формы delete)/destroy(явно вызывает деструктор объекта). Чтобы писать собственный аллокатор, надо знать подобные тонкости.
11
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru