Как аллоцировать память с помощью своего аллокатора?
Как аллоцировать память с помощью своего аллокатора ? Можно ли как то передать свой аллокатор в New?
Ответы (1 шт):
Как аллоцировать память с помощью своего аллокатора?
Вызовом его метода .allocate() или .construct().
если мы создаем
std::map<int, string> test, то аллокатор по умолчанию для негоstd::allocator<std::pair<int, string>. Предположим, с помощью этого аллокатора выделяется память для пар ключ - значение, т.еallocator.alocate(), но каким образом память выделяется для нод, содержащих эти пары? Ведь переданные алокатор имеет типstd::allocator<std::pair<int, string>
Тип аллокатора - std::allocator<std::pair<const int, string>>, это во-первых.
Предполагаю, что аллокатор этого типа вообще не используется, и заменяется другим аллокатором, тип которого определяется через std::allocator_traits<...>::rebind_alloc<...>. В rebind скорее всего передается тип ноды, а пары лежат прямо внутри нод, а не аллоцируются отдельно.