Вопросы по теме 'allocator'

Как я могу заставить объект построить себя в определенном месте в памяти?
Возможный дубликат: Создать новый C++ объект по определенному адресу памяти? Я пишу то, что по сути является распределителем пула объектов, который будет выделять один класс. Я выделяю ровно столько памяти, сколько нужно для объектов,...
375 просмотров
schedule 14.05.2023

Распределитель C ++ STL против оператора new
Согласно C ++ Primer 4th edition, стр. 755, есть примечание: Современные программы на C ++ обычно должны использовать класс распределителя для выделения памяти. Это безопаснее и гибче. Я не совсем понимаю это утверждение. Пока что все...
13972 просмотров
schedule 21.11.2022

предложения по улучшению реализации алгоритма распределителя
У меня есть приложение Visual Studio 2008 C++, в котором я использую настраиваемый распределитель для стандартных контейнеров, так что их память поступает из файла с отображением памяти, а не из кучи. Этот распределитель используется для 4 различных...
354 просмотров
schedule 08.02.2024

Пользовательский распределитель памяти для OpenCV
Можно ли установить собственный распределитель для OpenCV 2.3.1? У меня создан пул памяти, и я хочу, чтобы OpenCV использовал этот пул для того, что ему нужно. Это возможно? Если да, то как это можно сделать? Обновлено: Я сделал некоторые...
2026 просмотров
schedule 07.06.2022

Можно ли вызывать allocator::deallocate() в другом порядке, чем вызов allocator::allocate()?
N3485 20.6.9.1 [allocator.members]/1 говорит: Вызовы этих функций, которые выделяют или освобождают конкретную единицу памяти, должны происходить в едином общем порядке, и каждый такой вызов освобождения должен происходить до следующего...
116 просмотров
schedule 11.01.2023

Как сделать мой uninitialized_allocator безопасным?
Следуя этому вопросу , я хочу использовать unitialised_allocator с , скажем, std::vector , чтобы избежать инициализации элементов по умолчанию при построении (или resize() из std::vector (см. также здесь для варианта использования). Мой...
315 просмотров
schedule 29.10.2022

Распределитель карт С++ хранит элементы в векторе?
Вот проблема, которую я хотел бы решить: в C++ итераторы для карты, мультикарты и т. д. отсутствуют две желательные функции: (1) их нельзя проверить во время выполнения на достоверность и (2) нет оператора ‹ определены для них, что означает, что они...
186 просмотров
schedule 20.03.2022

Как использовать распределитель для std::vector?
я действительно не получаю поля шаблона std::vector, первый указывает тип, например класс, но я не получаю распределитель, указатель и ссылочные переменные. я приведу простой пример, я хочу использовать вектор класса person, поэтому я должен...
3324 просмотров
schedule 02.12.2022

Почему у типа shared_ptr нет параметра распределения шаблонов?
shared_ptr определяется как template< class T > class shared_ptr; пользовательский распределитель передается как аргумент конструктора template< class Y, class Deleter, class Alloc > shared_ptr( Y* ptr, Deleter d, Alloc alloc...
185 просмотров
schedule 12.10.2022

Как я могу создать std::function с настраиваемым распределителем?
Чтобы сохранить некоторый код, скажем, у меня есть собственный распределитель с именем MyAlloc , который я успешно использовал с std::vector<int> следующим образом: std::vector<int,MyAlloc<int>> vec; теперь я хочу...
5130 просмотров
schedule 25.07.2022

почему есть две функции std::allocator::construct?
Стандарт предоставляет две функции конструкции в std::allocator<T> для размещения нового синтаксиса ниже: void construct( pointer p, const_reference val ); (1) (until C++11) template< class U, class... Args > void construct( U* p,...
101 просмотров
schedule 03.01.2023

Непрерывное выделение памяти для нескольких небольших std::vectors?
Я хотел бы найти способ хранить несколько std::vectors , каждый из которых имеет разный, но известный и достаточно небольшой размер, в непрерывной памяти. Я понимаю, что мог бы написать свой собственный класс, скажем, с очень большим массивом и с...
1309 просмотров
schedule 09.02.2023

Apple Clang: невозможно скомпилировать вызов std :: erase для вектора с настраиваемым распределителем
У меня есть следующий фрагмент кода: #include <algorithm> #include <memory> #include <vector> // Example allocator, doesn't do anything but implements std::allocator_traits template<typename T> struct null_allocator {...
399 просмотров
schedule 28.12.2022

std::string с настраиваемым распределителем
Итак, в настоящее время я пишу отладчик памяти, и для этого мне нужны объекты контейнера stl для использования неотслеживаемого распределителя. У меня есть std::string, приправленный всей моей кодовой базой, поэтому я набрал его, чтобы использовать...
7839 просмотров
schedule 14.01.2023

почему std :: allocator :: deallocate требует размера?
std::allocator - это абстракция над базовой моделью памяти, которая включает в себя функции вызова new и delete . delete размер не нужен, но deallocate () требует этого. void deallocate (T * p, std :: size_t n); «Аргумент n...
1651 просмотров

Как решить неожиданный std::allocator при компиляции кода?
Я определил конструктор класса, как показано ниже: struct TestClass { TestClass(std::uint8_t, std::vector<Type>) { //... } }; Затем я хочу использовать тест Google для выполнения модульного теста, ошибка компиляции...
2652 просмотров
schedule 09.05.2022

Какова цель и использование `memory_resource`?
Стандарт C++17 включает новое пространство имен pmr , включающее набор классов, сгруппированных под именем memory_resource . После поиска в Интернете я нашел очень мало вульгарной информации о нем, прямое следствие этого вопроса: Какие...
3390 просмотров
schedule 27.06.2023

Каков порядок присваиваний внутри конструктора перемещения по умолчанию?
В настоящее время я работаю над собственным распределителем на С++. Этот распределитель должен регулярно дефрагментировать свою память, перемещая память и объекты. Эти сдвиги всегда нисходящие, а это означает, что адрес перемещаемого фрагмента...
144 просмотров

Как передать пользовательский распределитель в std::basic_ostringstream в C++11?
Я хочу использовать настраиваемый распределитель для выделения памяти из свободного списка для std::basic_ostringstream . Вот мой пользовательский распределитель, который я хочу использовать: template <class Tp> struct NAlloc {...
1571 просмотров

Как использовать предоставленный GCC распределитель (например, malloc_allocator, debug_allocator, __pool_alloc)?
По умолчанию GGC использует `new_allocator. Как я могу использовать другие распределители, такие как debug_allocator/malloc_allocator? Я сделал что-то вроде этого: typedef std::basic_string<char, std::char_traits<char>,...
201 просмотров
schedule 07.08.2022