Introduction
Si une seule notion est à retenir de tout le concept de la STL, c'est
celle-ci:

L'idée soulevée par les concepteurs de cette bibliothèque
était simple: la fa&ccsimple: la façon de stocker les éléments,
de même que le type d'opération à effectuer sur ceux-ci
ne dependent absolument pas du type même des éléments.
Ainsi, effectuer un Quicksort sur un tableau d'entiers ou effectuer un Quicksort
sur une liste d'élèves par exemple revient tout simplement à
effectuer un Quicksort.
Quel que soit le type d'objet stocké, et quel que soit le type du conteneur,
l'algorithme du Quicksort reste le même, et il n'est donc pas nécessaire
d'en écrire un différent pour chaque type d'objet.
De quoi a-t-on réellement besoin pour effectuer un tri?
- nous devons être capable de nous promener dans la "liste"
des éléments et de faire des inversions.
- nous devons être capable de comparer deux éléments.
- nous devons mettre en place l'algorithme
Ce que la STL nous fournit:
- la liste ( à prendre ici au sens général. Un vecteur,
une liste, une queue... ).
-> les conteneurs
- la façon de se promener sur les éléments du conteneur.
-> les itérateurs
- l'algorithme ( et il y en a un paquet de bien intéressants! )
-> les algorithmes
Ce qu'il nous reste en gros à faire:
- ici redéfinir l'opérateur de comparaison '<' si le type
de l'objet n'est pas standard ( donc pour les éleves et pas pour les
entiers ).
- connecter l'algorithme à la la liste.
Mis à part la simplicité d'implémentation, d'autres notions
doivent ( ou devraient ... ) nous inciter à utiliser cette bibliothèque:
La fiabilité : les classes de la STL sont particulièrement
sûres, et, dès quune erreur est découverte, elle est
rapidement corrigée. En outre, la plupart des composants ont été
écrits par des spécialistes, en particulier Andrew Koenig, lun
des premiers et plus fervents concepteur / utilisateur du C++.
La réutilisabilité : la STL &ilité : la STL étant dorénavant
totalement intégrée au standard du C++, son utilisation est sensée
(à prendre avec des pincettes ... ) garantir la portabilité du
logiciel.
La compréhensibilité et la maintenabilité : la
standardisation de la STL garantit que tout utilisateur sera capable dappréhender
favorablement du code reposant sur elle.
L' efficacité (au sens algorithmique! ) : les composants ayant
été écrits par des gens biens, il y a fort à parier
que leur utilisation conduit à du code plus efficace que celui reposant
sur des bibliothèques "maison".
Un point important qu'il reste à détailler: la librairie STL
est basée sur la notion de patrons C++ ( les templates ). L'utilisation
de la STL n&eacutla STL nécessite donc une certaine maîtrise de la programmation
générique en c++.
Pour de plus amples informations sur l'utilisation des templates en c++, reportez
vous à la page des liens
