6.4.1 Présentation et différences

Une std::list ou un std::vector se comportent comme des tableaux, mais ce sont en fait des listes doublement-chaînées.

Non non, ne partez pas.

Une liste chaînée est comparable à un collier de perle, chaque perle connaît sa suivante. Une liste doublement-chaînée est semblable, mais chaque perle connaît sa suivante et sa précédente. De ce point de vu là, les list et le vector (je vous fait grâce du std::) sont semblables.

La principale différence est dans l'utilisation :

  • une list est optimisée pour l'ajout et le retrait fréquent d'éléments.
  • un vector est optimisé pour être remplis une bonne fois pour toutes, et parcouru systématiquement dans l'ordre.

Le vector possède l'opérateur [] (le même que celui du tableau normal) alors que la list n'en a pas (ce qui peut-être pénible je vous l'accorde).