ExpertiDict

C++ · Essencial · Inglês · Técnico

std vector

ˌɛs.tiː.ˈdiː ˈvɛktɚsubstantivo

Contêiner da STL que guarda elementos contíguos em memória e cresce dinamicamente. É o contêiner padrão em C++, com acesso por índice em tempo constante.

Onde usar

Em quase toda decisão de design, a resposta inicial é vector, pois a contiguidade favorece o cache. Em code review, espera-se reserve antes de muitos push_back.

Em código

std::vector<int> v;
v.reserve(100);  // evita realocações
for (int i = 0; i < 100; ++i) v.push_back(i);
int a = v[2];     // sem checagem
int b = v.at(2);  // lança out_of_range

Exemplos

Just use a std vector unless you have a strong reason not to.

Use um std vector, a não ser que tenha um bom motivo para não usar.

Call reserve on the vector before the loop to avoid reallocations.

Chame reserve no vector antes do laço para evitar realocações.

Cuidado

push_back pode realocar o buffer, invalidando ponteiros e iteradores para os elementos.

Sinônimos

vetor dinâmico

Veja também

Todos os termos de C++