Je me demande comment aller sur la copie de certains éléments d'un vecteur donné dans l'autre.Comment copier dans un vecteur non initialisé?
std::vector<T> vec2;
vec2.reserve(N);
std::copy_if(vec1.begin(),
vec1.end(),
vec2.begin(),
[=](const T& r) {
return /*something*/
});
(À ce stade vec1
a un tas d'éléments déjà.)
Ou devrais-je utiliser back_inserter
?
std::vector<T> vec2;
vec2.reserve(N);
std::copy_if(vec1.begin(),
vec1.end(),
std::back_inserter(vec2),
[=](const T& r) {
return /*something*/
});
Lequel de ces éléments fonctionnerait, si non? Aussi, l'appel à réservation est-il nécessaire?
Vous devez utiliser 'back_inserter' –
Pourquoi le premier ne fonctionne-t-il pas? @IgorTandetnik – Dovahkiin
@Dovahkiin Il n'a pas d'éléments encore où vous allez copier. –