C++ · Avançado · Inglês · Técnico
std allocator
Objeto que o contêiner usa para obter e devolver memória, sem fixar como. O padrão usa operator new, mas aceita um alocador de arena ou de pool.
Onde usar
Usado em jogos e sistemas de baixa latência para reduzir chamadas ao heap. O std::pmr, do C++17, oferece alocadores polimórficos que não mudam o tipo do contêiner.
Em código
char buf[1024];
std::pmr::monotonic_buffer_resource r(
buf, sizeof(buf));
std::pmr::vector<int> v(&r);
v.push_back(1); // usa buf, não o heapExemplos
We give the vector a pool allocator to avoid heap calls.
Damos ao vector um alocador de pool para evitar chamadas ao heap.
A monotonic buffer resource makes this allocator very cheap.
Um monotonic buffer resource deixa esse alocador muito barato.
Cuidado
Antes do pmr, mudar o alocador mudava o tipo do contêiner, então vectors com alocadores diferentes eram tipos incompatíveis.
Sinônimos
alocador