Qui est le plus rapide : SDT :Vector ou les tableau[] ?

Qui est le plus rapide : SDT :Vector ou les tableau[] ? - C++ - Programmation

Marsh Posté le 21-01-2006 à 15:20:45    

Bonjour,
 
Je me pose une question :  
 
Quelle est la méthode la plus rapide pour accéder à des valeurs dans un tableau?
Les vectors (std) où les tableaux simples (alloués avec new par exemple) ?
 
J’imagine que les tableaux simples sont plus rapide mais dans quelles proportions ?
 
 
Voila ... si quelqu’un connais la réponse …  
Merci d’avance
 

Reply

Marsh Posté le 21-01-2006 à 15:20:45   

Reply

Marsh Posté le 21-01-2006 à 15:29:57    

Moi j'y connais pas trop en C++, mais il me paraîtrait logique que pour parcourir l'ensemble les tableaux soient + rapides puisque les valeurs sont contigues.
Mais pour accéder à une valeur, vu que c'est tout les deux des pointeurs  -> I don't know

Reply

Marsh Posté le 21-01-2006 à 15:53:25    

c'est pareil.

Reply

Marsh Posté le 21-01-2006 à 16:08:27    

Dans ce cas j'attendrais une vraie réponse (mais merci quand même :) )
 
 

Reply

Marsh Posté le 21-01-2006 à 18:01:59    

c'est pareil on te dit :o

Reply

Marsh Posté le 21-01-2006 à 18:08:21    

Code :
  1. #include <vector>
  2. typedef std::vector<float> Vector;
  3. double sum(const Vector &v)
  4. {
  5. double s = 0.0;
  6. for (unsigned i = 0; i != v.size(); ++i)
  7.  s += v[i];
  8. return s;
  9. }
  10. /*
  11. .L5:
  12.         slwi 0,9,2
  13.         addi 9,9,1
  14.         lfsx 0,3,0
  15.         fadd 1,1,0
  16.         bdnz .L5
  17. */
  18. double sum(const float v[], unsigned len)
  19. {
  20. double s = 0.0;
  21. for (unsigned i = 0; i != len; ++i)
  22.  s += v[i];
  23. return s;
  24. }
  25. /*
  26. .L12:
  27.         lfsx 0,9,3
  28.         fadd 1,1,0
  29. .L11:
  30.         slwi 9,10,2
  31.         addi 10,10,1
  32.         bdnz .L12
  33. */

gcc 4.0 -O2, c'est exactement pareil

Reply

Sujets relatifs:

Leave a Replay

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