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

Для чего существуют allocator-и - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Programmer.
Прогер
 Аватар для Programmer.
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2012, 04:23     Для чего существуют allocator-и #1
Привет, опять я...

Очерeдный вопрос: Для чего существует allocator и как он используется? прочитал по англисский но как то не понял...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
07.03.2012, 08:05     Для чего существуют allocator-и #2
тыкая пальцем в небо - для того что бы можно было переопределить объект выделяющий память для объектов библиотеки STD таким образом что бы получить решение заточенное под конкретную задачу
Programmer.
Прогер
 Аватар для Programmer.
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2012, 14:45  [ТС]     Для чего существуют allocator-и #3
vxg,
Спасибо, Примерчик можно?
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
07.03.2012, 15:04     Для чего существуют allocator-и #4
никогда такого не делал, но тыкая пальцем в небо - у большинства классов библиотеки STD аллокатор фигурирует в качестве параметра шаблона имеющего умалчиваемое значение. если определить собственный аллокатор (его "интерфейс" слизывается с типового аллокатора наследованием) и указывать его явно при создании объектов они будут получать память выделенную по нашим правилам. практическая необходимость в таких фокусах может появится при частом выделении/освобождении памяти - в этом случае память оказывается дешевле не освобождать по настоящему, а занести указатель в специальный список свободных из которого в последствии пытается черпать память операция выделения. сам не делал, поэтому может что путаю
Programmer.
Прогер
 Аватар для Programmer.
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2012, 17:05  [ТС]     Для чего существуют allocator-и #5
vxg,
спасибо большое...

Добавлено через 19 минут
vxg,
Вот я нашел вот токой примерчик:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <memory>
 
int main()
{
    std::allocator<std::string> exp;
    std::string *ptr;
    ptr = exp.allocate(10);
    exp.construct(ptr, "???");
    std::cout << ptr[0] << std::endl;
}
Чем етот пример отличается от:
C++
1
2
3
string *str;
str[0]  = "???";
cout << str[0] << endl;
Спасибо заранее...
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.03.2012, 03:11     Для чего существуют allocator-и #6
Что такое std::allocator<T> ?
Yandex
Объявления
08.03.2012, 03:11     Для чего существуют allocator-и
Ответ Создать тему
Опции темы

Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru