Vecteur à éléments connu à l'avance: resize ou push_back?

Vecteur à éléments connu à l'avance: resize ou push_back? - C++ - Programmation

Marsh Posté le 07-06-2003 à 16:57:11    

Je tente de réveiller un peu le coin avec cette question:
 
on déclare un vecteur dont on ne connait pas le nombre à l'avance...
 
On le passe par référence dans une fonction qui doit le remplir, et qui sait combien d'éléments il doit contenir...
 
Vaut-il mieux faire un push_back à chaque élément qu'on veut insérer, ou bien faire un resize(NbreElements) puis un vecteur[i] = Element?
 
Merci!!


---------------
Another .Net Blog
Reply

Marsh Posté le 07-06-2003 à 16:57:11   

Reply

Marsh Posté le 07-06-2003 à 17:35:37    

le push_back c'est commode, mais si ton vector part avec une taille de 0 ou 1, il y aura log2(n) appels à resize, et la dimension finale de ton vecteur sera la première puissance de 2 supérieure à n.. donc à toi de voir.. tu peux aussi faire un vecteur.reserve(n) et ensuite une série de push_back

Reply

Marsh Posté le 07-06-2003 à 23:37:53    

dans l'ordre de préférence constructeur (auquel on peut passer la taille), resize, et en dernier ressort reserve (gaffe de pas confondre)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed