Вопросы по теме 'allocator'
Убедительные примеры пользовательских распределителей C++?
Каковы действительно веские причины отказаться от std::allocator в пользу индивидуального решения? Сталкивались ли вы с ситуациями, когда это было абсолютно необходимо для корректности, производительности, масштабируемости и т. д.? Есть...
102957 просмотров
schedule
12.04.2022
Утечка памяти при использовании OpenMP
В приведенном ниже тестовом примере не хватает памяти на 32-битных машинах (выбрасывается std::bad_alloc) в цикле, следующем за сообщением «post MT section» при использовании OpenMP, однако, если #pragmas для OpenMP закомментированы, код выполняется...
5852 просмотров
schedule
11.11.2022
Синтаксис параметра шаблона шаблона по умолчанию
Я написал спископодобный шаблонный класс sll (Single Linked List). Теперь я пытаюсь подключить к нему распределитель. У меня есть распределитель по умолчанию, распределитель и распределитель на основе пула, pool_allocator. Они разработаны после...
877 просмотров
schedule
31.12.2022
нужно написать распределитель разделяемой памяти для С++ std::vector
Помогите, пожалуйста, написать распределитель C++ для класса std::vector‹ nIcon*>.
Все примеры, которые я нахожу, показывают, какие методы мне нужно перезаписать, а не примеры кода.
Мне нужно реализовать распределитель с использованием общей...
1223 просмотров
schedule
17.07.2022
Требования к типам указателей распределителя стандартной библиотеки
Я пытаюсь написать класс разреженной матрицы quadtree. Короче говоря, quadtree_matrix<T> — это либо нулевая матрица, либо четверка (ne, nw, se, sw) из quadtree_matrix<T> .
В конечном итоге я хотел бы протестировать различные схемы...
400 просмотров
schedule
13.01.2023
Распределитель по умолчанию С++ - что должно произойти, если размер не равен размеру, переданному при вызове выделения?
20.6.9:
void deallocate(pointer p, size_type n);
Требуется: p должно быть значением указателя, полученным из allocate(). n должно равняться значению, переданному в качестве первого аргумента для вызова allocate, который вернул p....
142 просмотров
schedule
19.09.2022
Существует ли распределитель STL, который не будет неявно освобождать память?
Прогнозируется, что использование памяти в моих контейнерах STL будет изменчивым, то есть оно будет часто уменьшаться и увеличиваться. Я думаю учесть это, указав распределитель для объявлений типа контейнера STL. Я понимаю, что распределители пула...
490 просмотров
schedule
10.07.2023
Пользовательский аллокатор для быстрого распределения std::wstring
Существует ли какой-либо распределитель с открытым исходным кодом (возможно, в Boost), который можно использовать с std::wstring , реализующим шаблон быстрого распределения, подобный показанному в этот пост в блоге ?
Boost.Pool не подходит для...
821 просмотров
schedule
09.01.2024
Использование tcmalloc/jemalloc с менеджером пользовательского пула памяти
Я хотел бы использовать высокопроизводительный распределитель общего назначения, такой как jemalloc / tcmalloc , с пулом памяти. Есть ли руководство для этого? Я не хочу использовать jemalloc / tcmalloc в качестве замены malloc .
У меня есть...
2537 просмотров
schedule
09.05.2022
Почему распределителю нужен интерфейс построения и уничтожения?
Распределитель по умолчанию в stl имеет интерфейсы для создания и уничтожения элементов.
void construct(pointer __p, const _Tp& __val)
void destroy(pointer __p)
Но stl также предоставляет два типа функций для выполнения одних и тех же...
250 просмотров
schedule
08.02.2024
Можно ли позже создать элементы std::tuple с помощью распределителя?
Насколько я понял, одной из причин использования распределителей C++ для моего собственного контейнера было бы то, что я могу разделить выделение и построение.
Теперь мне интересно, возможно ли это для std::tuples следующим образом: каждый раз,...
829 просмотров
schedule
14.04.2022
Как forward_list, set, list и т.д. вызывают std::allocator?
Я заметил, что аллокатор может выделять только объекты типа T и резервировать блоки памяти размером n * sizeof(T) . Однако узлы связанного списка внутри типа std::list<T> не обязательно являются объектами типа T и не обязательно имеют...
241 просмотров
schedule
15.04.2024
получение памяти от std::vector
Я использую внешнюю библиотеку, которая работает с большими объемами данных. Данные передаются необработанным указателем плюс длина. Библиотека не претендует на владение указателем, но вызывает предоставленную функцию обратного вызова (с теми же...
3901 просмотров
schedule
11.12.2022
Всегда ли полезно устанавливать количество сегментов в конструкторе, если мы знаем количество элементов заранее, а не резервировать их позже?
Я вижу, что создание пустой карты unordered_map устанавливает количество корзин по умолчанию (в моем случае это 11). После чего, если я вызову unordered_map.reserve(n) , где n довольно велико, он немедленно перефразируется. Так что это хорошая идея...
72 просмотров
schedule
02.07.2023
Почему объект, выделенный в межпроцессной разделяемой памяти boost, занимает больше памяти, чем требуется?
Для приведенной ниже программы, использующей межпроцессную разделяемую память Boost,
#include <iostream>
#include <boost/interprocess/mapped_region.hpp>
#include <boost/interprocess/managed_shared_memory.hpp>
#include...
1409 просмотров
schedule
14.06.2023
Как использовать std :: allocator вместо realloc?
Допустим, я пишу собственный вектор, используя std::allocator для обтекания new и delete .
Когда количество элементов превышает емкость вектора, я хотел бы перераспределить буфер на что-то большее. Я легко могу этого добиться, позвонив...
394 просмотров
schedule
11.04.2022
Использование распределителя в C++ (дерево STL)
Недавно я пытался понять, как работают распределители C++, и искал реализацию красно-черного дерева, которое библиотека STL использует для таких вещей, как std::set или std::map , но есть некоторые вещи, которые я не могу понять. получить мою...
1057 просмотров
schedule
30.10.2023
самостоятельно документировать возвращаемую структуру данных функции, которая использует однокадровый распределитель
Как самостоятельно задокументировать функцию, использующую пользовательский распределитель, чтобы напомнить, что ее пользователь не должен кэшировать возвращаемый результат.
У меня есть библиотека и пользовательский класс, они используют...
37 просмотров
schedule
29.06.2023
Распределитель C++ STL в общей памяти — Windows
Прежде чем я начну, я хотел бы прояснить две вещи:
Я не могу использовать Boost IPC для этого проекта и не могу использовать ничего, кроме оригинальных библиотек C/C++.
Я посмотрел здесь и здесь для ответов и до сих пор не смог получить...
780 просмотров
schedule
17.02.2023
Неправильный размер вектора с аллокаторами Boost
Следующая программа выделяет память для c , объекта типа C , в пространстве отображаемого в память файла. Добавление одного символа к вектору, содержащемуся в c , изменяет сообщаемый размер вектора с 0 на 18446744073709551520.
#include...
103 просмотров
schedule
04.07.2022