Sobes.tech
Middle

Quelle est la complexité des opérations pour les conteneurs std::vector et std::list en C++?

sobes.tech IA

Réponse de l'IA

std::vector

  • Accès par index: O(1)
  • Ajout à la fin (push_back): amorti O(1)
  • Insertion ou suppression au milieu: O(n), car nécessite un décalage des éléments
  • Itération: O(n)

std::list (liste doublement chaînée)

  • Accès par index: O(n), car nécessite une traversée séquentielle
  • Insertion et suppression à n'importe quel endroit (si un itérateur est disponible): O(1)
  • Itération: O(n)

Ainsi, vector est efficace pour un accès rapide et l'ajout à la fin, tandis que list est adapté pour des insertions et suppressions fréquentes au milieu sans avoir besoin de déplacer les éléments.