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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 55, средняя оценка - 4.64
bor.is
0 / 0 / 1
Регистрация: 29.08.2007
Сообщений: 9
#1

std::allocator - C++

29.08.2007, 19:38. Просмотров 6948. Ответов 1
Метки нет (Все метки)

я не смог найти хорошего описания роботы с аллокатором, так что спрашиваю у тех, кто с ним работал
std::allocator::allocate (size_type size, void* hint);
по идее hint должен задавать начальную позицию с которой будет выделяться память, но на практике это не выполняется
и потом даже если я захочу выделить память там где я хочу - она может быть занята, так как же тогда, например, в векторе так быстро выполняется push_back () ??
вообще моя задача позволить добавлять и удалять элементы в динамической реализации масива, да хорошо подходит вектор, но нужно это сделать самому
делал так, что каждый раз при добавлении элемента выделяется память на size() + 1 элементов, туда же копируется старый массив и в конце добавляется новый элемент
а старый массив деструктируется, но такая реализация очень медленна, вектор делает это как-то быстро, я смотрел по сырцам но понять так и не смог
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2007, 19:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::allocator (C++):

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

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

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

allocator std::map - C++
Подскажите вопрос, есть тестовое задание: Подскажите где про это почитать и разъясните по-возможности, что это вообще такое...

Std::allocator<wchar_t>>' to 'LPCWSTR' - C++
собственно есть list&lt;wstring&gt; куда вставили много адресов типа L&quot;D:\\66\\99&quot;; Задача удалять папки по этому адресу (пока что папки пусты...

Что такое std::allocator<T> ? - C++
я так понял возвращает адрес чего то?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Гость
Сообщений: n/a
22.09.2007, 00:33 #2
Вектор выделяет памяти не точно сколько запросили, а несколько больше - так, чтобы при следующих операциях вставки элементов вообще не перевыделять память. Например: при первой вставке выделяется памяти на 10 элементов, когда пытаются вставить 11-й - на 50 элементов и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2007, 00:33
Привет! Вот еще темы с ответами:

Как сделать свой контейнер совместимым с std::allocator? - C++
Как сделать свой контейнер совместимым с std::allocator?

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') - C++
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...


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

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

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