La norme du vecteur et de stimuler tableau: qui est le plus rapide?

Comment la performance de boost::array compare à celle de std::vector, et les facteurs qui ont une influence sur elle?

  • Je doute que cela peut être un goulot d'étranglement dans votre application.
  • Je suis en train de faire le calcul scientifique et la vitesse est TRÈS important pour elle.
  • Ensuite, vous devez savoir à profil.
  • Ensuite, l'allocation de la mémoire et de la réaffectation sera votre seul véritable goulot d'étranglement. Si vous savez comment beaucoup d'éléments à stocker, commencer par l'un et l'utilisation par exemple std::vector::reserve.
  • Oui. Je pense la même manière. Mais est-il une différence majeure entre les réservant pour un vecteur et d'utiliser boost::array?
  • Oui, parce que boost::array est dans la pile. Un vecteur est alloué dynamiquement.
  • l'un est de compiler limitée dans le temps, l'autre a la possibilité de grandir en cas de besoin - qui avez-vous besoin?
  • Bien sûr.
  • Un boost::array peut être soit statique ou dynamique affectées (c'est sur la pile ou dans le tas). La capacité de stockage pour un std::vector est toujours allouée dynamiquement, même si le vecteur est allouée statiquement.

InformationsquelleAutor grzkv | 2011-02-14