ExpertiDict

C++ · Avançado · Inglês · Técnico

std allocator

ˌɛs.tiː.ˈdiː ˈæ.lə.keɪ.tɚsubstantivo

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 heap

Exemplos

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

Veja também

Todos os termos de C++