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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с двумя классами http://www.cyberforum.ru/cpp-beginners/thread446984.html
А)Базовый класс Б)Класс наследник А) Список списков с информацией об объектах сгруппированных по типу - продуктах питания: название, тип (мясо, рыба, крупа, фрукт, специя и т.д. и т.п.), форма выпуска, единица измерения, срок хранения, условия хранения, калорийность, содержание жиров, белков, углеводов, наличие витаминов А, В, С. Операции: сохранение и загрузка списка из файла, поиск...
C++ Палиндром ввод с клавиатуры Доброго времени суток:) Напишите программу,которая читает пятизначные целые и определяет,являются ли они палиндромами(пример палиндрома 12321,55555,41114).Решить без юзания массивов. Задача из книги Дейтелов. Код я написал,ну вот насчёт логики и правильного стиля программирования я сомневаюсь,хотя всё работает норм.Помогите советом или кодом начинающему программисту:) #include "stdafx.h"... http://www.cyberforum.ru/cpp-beginners/thread446982.html
C++ Не работает в release
Доброго времени суток, Столкнулся со следующей проблемой: При выполнении Debug Build - MFC программа работает корректно. Собираю Release build. Запускаю exe из папки Release. Окно запускается, все как надо, но программа не считает. Причем по скорости вывода ответа кажется, что она даже не проходит по алгоритму. Работаю в Visual Studio 2010. Может есть есть какие оптимизаторы кода, которые...
C++ Не работает программма "перевертыш"
Всем доброго времени суток. Пока только учусь программированию на с++ и решил написать программу в которую вводиш например "приветмир" а она тебе выдает "римтевирп". Написал код, скомпилировал а она вместо "римтевирп" пишет "Иримтевир". Вот код #include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv) { char ch,pr;
C++ первый шаг он трудный самый! http://www.cyberforum.ru/cpp-beginners/thread446936.html
Как наверное понятно из заголовка, я решил изучить С++. Скачал книгу, компилятор Dev-C++. В книге написано создать свою первую программу, которая выглядит так: #include <iostream.h> void main(void) { cout << "Учимся программировать на языке C++!"; } Когда я запускаю чета происходит но ниче существенного и понятново)))) Если можете объясните по возможности доступно что я делаю не так и...
C++ задача на minmax Дано целое число N (> 1) и набор из N чисел. Найти номера двух соседних чисел из данного набора, произведение которых является мини- мальным, и вывести вначале меньший, а затем больший номер. подробнее

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