С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

07.03.2012, 04:23. Просмотров 2176. Ответов 5
Метки нет (Все метки)

Привет, опять я...

Очерeдный вопрос: Для чего существует allocator и как он используется? прочитал по англисский но как то не понял...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2012, 04:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для чего существуют allocator-и (C++):

Распределитель памяти идентичный std::allocator. Непонятные синтаксис и концепция std::allocator::construct - C++
Компилятор: MSVC 2010 Exress код моего класса распределяющего память под спойлером #include <stdlib.h> // my memory allocator...

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

Какие существуют способы выделения памяти для переменных? - C++
А какие существуют способы выделять память для переменных?

Существуют ли какие-нибудь библиотеки C++ для работы с HTML - C++
Подскажите пожалуйста, существуют ли какие-нибудь библиотеки С++ для работы с HTML (вывод формы из файла html, получение значений из полей,...

allocator - C++
Здорова! Есть задачка:"Завершите или реализуйте с самого начала Pool_alloc (параграф 19.4.2) так, чтобы обеспечивались все возможности...

Какие существуют короткие константы для достаточно больших чисел? - C++
Периодически возникает потребность в использовании циклов с достаточно большим числом итераций, где важен только порядок, а не конкретное...

5
vxg
Модератор
3188 / 1991 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
07.03.2012, 08:05 #2
тыкая пальцем в небо - для того что бы можно было переопределить объект выделяющий память для объектов библиотеки STD таким образом что бы получить решение заточенное под конкретную задачу
1
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2012, 14:45  [ТС] #3
vxg,
Спасибо, Примерчик можно?
0
vxg
Модератор
3188 / 1991 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
07.03.2012, 15:04 #4
никогда такого не делал, но тыкая пальцем в небо - у большинства классов библиотеки STD аллокатор фигурирует в качестве параметра шаблона имеющего умалчиваемое значение. если определить собственный аллокатор (его "интерфейс" слизывается с типового аллокатора наследованием) и указывать его явно при создании объектов они будут получать память выделенную по нашим правилам. практическая необходимость в таких фокусах может появится при частом выделении/освобождении памяти - в этом случае память оказывается дешевле не освобождать по настоящему, а занести указатель в специальный список свободных из которого в последствии пытается черпать память операция выделения. сам не делал, поэтому может что путаю
1
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
07.03.2012, 17:05  [ТС] #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;
Спасибо заранее...
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.03.2012, 03:11 #6
Что такое std::allocator<T> ?
0
08.03.2012, 03:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2012, 03:11
Привет! Вот еще темы с ответами:

std::allocator - C++
Здравствуйте! Подскажите почему возникает ошибка сегментирования: using std::cout; using std::endl; int main() { ...

std::allocator - C++
я не смог найти хорошего описания роботы с аллокатором, так что спрашиваю у тех, кто с ним работал std::allocator::allocate (size_type...

Ошибка с allocator - C++
Приветствую. Пользуюсь Dev-C++. При выполнении кода, ошибка, что на скрине. #include &lt;iostream&gt; int main() { ...

Allocator и shared_ptr - C++
Прокомментируйте пожалуйста. Есть ли смысл и вообще возможность оформлять зарезервированную память allocator-ом в shared_ptr? Или это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.