C++ · Essencial · Inglês · Técnico
std vector
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_rangeExemplos
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