ISO C++ standard définit la complexité des algorithmes et des méthodes d'accès aux conteneurs, le cas échéant. Partout ailleurs (sinon explicitement) tous les paris sont désactivés et un implémenteur de bibliothèque est libre de faire sa propre implémentation. Par exemple, vous pouvez supposer que les cartes et les ensembles sont implémentés en utilisant des arbres rouge-noir, mais il n'y a aucune obligation de le faire. De nombreux algorithmes sont surchargés ou spécialisés pour des catégories d'itérateurs particulières (comme Random Access Iterator) et peuvent parfois même être optimisés pour fonctionner à partir d'un matériel spécial (comme le registre XMM et exécuter quelques opérations en parallèle).
Parfois vous devez vraiment assumer logiquement combien une opération peut coûter, en raison d'autres exigences, comme splice dans std :: list doit avoir O (1) complexité => longueur a O (n). J'ai le livre de N. Josuttis C++ Standard Library - Tutorial And Reference et tous ces aspects sont bien couverts là.
Cordialement,
Ovanes
Il y a un tableau comparatif de la complexité ici: [http: // devmentor .org/references/stl/stl.php] (http://devmentor.org/references/stl/stl.php) – Meysam
Je recommande de ne pas supprimer cette question, car les titres sont suffisamment différents. –
http://www.cs.northwestern.edu/~riesbeck/programming/c++/stl-summary.html – TGar