jeudi 13 mai 2010

Manipuler des listes génériques en C++

Pour rappel les types génériques sont supportés depuis récemment par un certain nombre de compilateur. Il faut savoir que cette notion existe depuis près de 20ans sous le nom de templates.

L'intérêt d'un type générique est de pouvoir générer des classes adaptables à un type de données particuliers. Ceci est très pratique par exemple pour les listes.
Si vous voulez gérer une liste liée manipulant des entiers, du texte ou des réels vous n'aurez sans doute pas envie de ré-écrire une classe liste par type de données à manipuler.

Le C++ offre depuis longtemps un mécanisme appelé "template" (modèle de classes) qui permet d'effectuer automatiquement cela pour vous.

La plupart des templates standards offerts par défaut avec C++ se trouve dans le module STL. Il suffit d'effectuer en début de code un #include

Vous trouverez ici un petit exemple sur comment créer et manipuler une liste liée générique contenant des chaines de caractères (max 255 caractères).

Le programme fonctionne en mode console et a été crée avec Code::Blocks.
Les options sont les suivantes :
1 permet d'encoder des données dans la liste
2 permet de lister les données, un identifiant est affiché pour pouvoir les supprimer
3 permet de supprimer une donnée de la liste sur base de l'identifiant.

Listing:
ajouter hyperlien...

Questions:

Comment est libéré le list ? Normalement, il détruit automatiquement à la sortie du main ? Qu'advient-il de ses éléments ?
Faut-il faire un erase du contenu avant de sortir du scope de la fonction ??

Aucun commentaire:

Enregistrer un commentaire