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 qu’une 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, l’un 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 d’appré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


<< Précédent
Index
suivant >>