| Version 2 (modified by , 15 years ago) (diff) |
|---|
Conteneurs & Itérateurs
Au cours de ce TME nous allons passer en revue trois principaux
types de conteneurs de la STL, vector<>, list<>
et map<>, ainsi que leurs itérateurs. Nous verrons aussi
leurs relations avec les fonction de tri.
Pour pouvoir travailler, nous allons utiliser les mots d'un petit
texte fourni dans le fichier GPL_2_text.h.
Le texte vous est fourni sous forme d'un tableau de char*.
La fin du tableau est indiquée par un pointeur NULL.
const char* GPL_2_text[] = {
"GNU", "GENERAL", "PUBLIC", "LICENSE",
// ...
NULL
};
Le conteneur vector
Question 1
Écrire une fonction vectorBench1() effectuant les tâches suivantes:
- Charger dans un vecteur de
stringle texte en insérant les nouveaux éléments à la fin. - Afficher le nombre d'éléments du vecteur.
- Trier les éléments du vecteur.
- Afficher tous les éléments du vecteur. On les affichera sur une seule ligne (ce sera très long).
Compiler et éxécuter ce programme. Mesurer sont temps d'exécution grâce à
la commande time (si votre programme s'appelle containers).
> time ./containers
Remarque: Le temps peut varier légèrement d'une exécution à l'autre en fonction de la charge de la machine. Lancez votre programme plusieur fois pour avoir un ordre de grandeur.
Question 2
Écrire une fonction vectorBench2() idendique à la précédente, mais
qui, au lieu d'insérer les éléments en fin de conteneur, les insère
en tête. Sachant que vector<> n'a pas de push_front(), comment
peut-on faire (simplement).
Mesurer le temps. Conclusion?
Question 3
Écrire une fonction vectorBench3(), qui effectue les mêmes traitements
que vectorBench1() à ceci près que le tri, au lieu d'être effectué
une seule fois en fin de fonction sera fait après l'insertion de chaque
élément.
Mesurer le temps. Conclusion?
Attachments (1)
-
GPL_2_text.h (27.8 KB) - added by 15 years ago.
Le texte de la license GPL en tableau de char*
Download all attachments as: .zip
