Mantendo os primeiros N elementos de um std :: vector <> e removendo o restante
eu tenho umstd::vector<int>
variável na minhaC++
inscrição. O tamanho do vetor é determinado em tempo de execução, mas geralmente é cerca de1000
.
Ordenei esse vetor (que funciona bem) e, após a classificação, gostaria de manter apenas o primeiro50
elementos.
Eu tentei:
kpts.erase(kpts.begin() + 50, kpts.end());
Ondekpts
é o meu vetor e o desempenho é horrível! Presumivelmente por causa da maneiraerase
opera.
Existe uma maneira de manter apenas o primeiro50
elementos de um vetor? Parece que deveria ser óbvio, mas não consigo encontrar uma maneira de fazer isso.