Quelqu'un peut-il aider à cela ...manipulation des vecteurs créés avec de nouveaux
vector<unsigned int> *vVec = new vector<unsigned int>;
vVec .reserve(frankReservedSpace);
start = std::clock();
for(int f=0; f<sizeOfvec; f++)
{ //Populate the newly created vector on the heap
vVec .push_back(pArray[f]);
}
Je reçois: erreur C2228: gauche '.reserve' doit avoir la classe/struct/union
Je crée un vecteur en utilisant le nouvel opérateur afin qu'il survive à la fonction où il est créé. Cela me renvoie donc un pointeur vers ce vecteur sur le tas plutôt qu'un objet vectoriel lui-même. par conséquent, il ne me laissera pas exécuter .reserve() de push_backs. Je ne peux pas voir un moyen de contourner cela, quelqu'un peut-il aider?
Vous n'avez pas besoin de réserver de l'espace dans un vecteur car il sera redimensionné lorsque vous faites le push_back – Lodle
Pas nécessaire, mais une bonne pratique si vous connaissez - au moins approximativement - le nombre d'éléments à l'avance car cela réduit le nombre de tampons réaffectations et copie associée. – sharptooth
Si vous êtes inquiet au sujet des bonnes pratiques, n'allouez quand même pas de vecteurs ... –