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

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

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

std::allocator - C++

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

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

C++ std::allocator
allocator std::map C++
Что такое std::allocator<T> ? C++
Стоит ли очищать в деструкторе std::map , std::vecotor? C++
allocator C++
C++ Распределитель памяти идентичный std::allocator. Непонятные синтаксис и концепция std::allocator::construct
Какая реализация лучше? std::pointer_to_binary_function vs std::function C++
Std::allocator<wchar_t>>' to 'LPCWSTR' C++
C++ В чем отличия между std::cref() и std::bind()?
Allocator и shared_ptr C++
C++ Как сделать свой контейнер совместимым с std::allocator?
Ошибка с allocator C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Гость
Сообщений: n/a
22.09.2007, 00:33     std::allocator #2
Вектор выделяет памяти не точно сколько запросили, а несколько больше - так, чтобы при следующих операциях вставки элементов вообще не перевыделять память. Например: при первой вставке выделяется памяти на 10 элементов, когда пытаются вставить 11-й - на 50 элементов и т.д.
Yandex
Объявления
22.09.2007, 00:33     std::allocator
Ответ Создать тему
Опции темы

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