Описание тега allocator
Компонент стандартной библиотеки C++, отвечающий за обработку запросов на выделение и освобождение памяти для контейнера.
4
ответа
Использование памяти учетной записи с помощью специального распределителя
Я использую пользовательский распределитель для учета использования памяти в нескольких контейнерах. В настоящее время я использую статическую переменную для учета использования памяти. Как можно разделить эту учетную запись на несколько контейнеров…
27 окт '09 в 09:22
2
ответа
Почему std::vector::get_allocator() возвращает по значению?
К моему удивлению, я получил ошибку при попытке использовать std::vector::get_allocator() с не копируемым распределителем. Почему std::vector::get_allocator() вернуть по значению, а не по ссылке? template<typename T> class nc_allocator { publi…
06 апр '13 в 14:05
4
ответа
Использование памяти Linux на вершине при использовании std::vector против std::list
Я заметил интересное поведение в Linux в отношении использования памяти (RES), сообщенное top, Я приложил следующую программу, которая распределяет пару миллионов объектов в куче, каждый из которых имеет буфер размером около 1 килобайта. Указатели н…
31 дек '12 в 21:52
4
ответа
Нулевой распределитель по умолчанию обнуляет int?
При использовании контейнеров STL я не уверен, был ли обнулен int, выделенный распределителем по умолчанию. Следующий код указывает "да" на вопрос: #include <map> #include <iostream> int main() { using namespace std; map<int, int> …
06 мар '12 в 13:30
1
ответ
Принимает ли std::map распределитель по ссылке, по значению или использует его исключительно как тип?
Когда std::map принимает Allocator в качестве параметра в конструкторе, он берет его по ссылке с типом, взятым из его параметра шаблона класса: explicit map(const Allocator& alloc); Сохраняет ли она эту ссылку в объекте, или она принимает копию …
12 фев '18 в 15:12
3
ответа
Используется ли подсказка выделения?
Я читал, почему нет функции перераспределения в C++ распределителях? и возможно ли создать массив в куче во время выполнения, а затем выделять больше места при необходимости?, в котором четко указано, что перераспределение динамического массива объе…
13 мар '13 в 08:32
1
ответ
Переопределение нового, но указание unordered_map не использовать его
Я пишу сборщик мусора для C/C++ как упражнение по программированию, и часть этого включает глобальное переопределение new, Однако сборщик мусора также использует unordered_map (для хранения указателей на выделенные блоки), и все будет серьезно испор…
17 дек '10 в 04:28
0
ответов
Cpp Custom STD Распределитель
Первый таймер с распределителем. Я действительно борюсь с пользовательским распределителем. Я бы сказал, это очевидно, я не знаю, что я здесь делаю. Моя цель - поместить всю память для объекта в кучу процесса. Я хочу, чтобы распределение происходило…
07 апр '15 в 12:44
1
ответ
boost::unordered_map с использованием ошибки компиляции boost::interprocess::cached_node_allocator
Я пытаюсь создать boost:: unordered_map в сегменте boost:: interprocess:: managed_shared_memory. Это работает нормально, пока я не попробую перейти от использования boost:: interprocess:: allocator к boost:: interprocess:: cached_node_allocator. Каж…
14 сен '11 в 21:28
4
ответа
Как использовать STL-совместимые распределители для разнородных распределений памяти
Я пытаюсь реализовать класс, который следует в памяти массивом произвольного типа: template<class T> class Buf { size_t n; int refs; explicit Buf(size_t n) : n(n) { } // other declarations are here as appropriate // Followed in memory by: // T…
04 авг '14 в 00:42
0
ответов
Распределитель пользовательских памяти с шаблоном
Я изучаю некоторые вещи об управлении памятью, поэтому я хотел реализовать свой собственный распределитель памяти.. Сначала я создал абстрактный класс с именем SMemoryAllocator только с одним производным классом с именем StackBasedAllocator.. Моя пр…
02 мар '19 в 16:40
0
ответов
Оптимальное использование памяти в realloc (расщепление?)
У меня проблемы с кодированием моей функции realloc. У меня это работает через стандартную процедуру memcpy, но я не могу оптимизировать ее. Я знаю, что есть еще два случая, которые мне нужно учитывать: расширение текущего блока вперед и проверка, д…
03 мар '13 в 02:37
4
ответа
Производительность пользовательского распределителя
Я строю класс дерева AVL, который будет иметь фиксированное максимальное количество элементов. Поэтому я подумал, что вместо того, чтобы выделять каждый элемент отдельно, я бы просто выделил весь блок сразу и использовал растровое изображение для на…
15 апр '15 в 12:55
0
ответов
Класс со многими параметрами шаблона STL - использовать один распределитель или несколько?
Я пишу класс JSON для C++11, см. http://github.com/nlohmann/json. Моя центральная структура данных - это класс, упаковывающий типы значений JSON (null, массив, объект, строка, bool, число) в объединение и предлагающий его через приятный C++ и STL-по…
24 июн '15 в 21:39
1
ответ
Рамблинг на std::allocator
У меня недавно был некоторый интерес к std::allocatorЯ думаю, что это может решить проблему, которая у меня возникла с каким-то дизайнерским решением для кода C++ Теперь я прочитал некоторую документацию об этом, посмотрел несколько видео, например,…
09 мар '17 в 21:33
2
ответа
Почему в C++ 11 нет вектора (size_type n, const Allocator& alloc)?
В C++11 std::vector имеет конструктор vector(size_type n) который будет строить по умолчанию n элементы на месте, которые можно использовать с классами по умолчанию, которые можно создавать, перемещать и не копировать. Однако, в отличие от любого др…
23 фев '12 в 22:24
1
ответ
Как выделить, так и сконструировать, зачем нужны два?
Я провел некоторое исследование, но у меня все еще есть несколько вопросов, потому что вещи не кажутся ясными, есть еще одно обсуждение, которое здесь похоже, но неясно, дан один ответ, но у него репутация ноль, и единственный комментарий говорит чт…
16 мар '18 в 19:06
2
ответа
Как пользовательский распределитель может узнать, указывает ли указатель на массив?
Я мог бы неправильно понять некоторые понятия о распределителе. Но я действительно не знаю, почему нам нужен аргумент std::size_t быть переданным allocate указать количество объектов, которые будут выделены. Используется ли аргумент для выделения об…
25 июл '16 в 13:21
1
ответ
Как использовать std::allocator вместо realloc?
Допустим, я пишу собственный вектор, используя std::allocator обернуть new а также delete, Когда количество элементов превышает емкость вектора, я бы хотел перераспределить буфер на что-то большее. Я могу легко добиться этого, позвонив realloc(), Я …
02 авг '16 в 17:04
1
ответ
Как создать C++ 11 не конструируемый по умолчанию распределитель?
Эта тема возникла в этой теме об изменении std::list::sort() для Visual Studio 2015: `std:: list<>:: sort ()` - почему внезапный переход на нисходящую стратегию? Новая версия std:: list:: sort не требует создания по умолчанию std::list, поскольку он…
18 ноя '16 в 18:18