Travaux dirigés C++ no10
Transcription
Travaux dirigés C++ no10
Travaux dirigés C++ no10 Informatique —IMAC 2e année— La STL Au cours de ce TP vous apprendrez à utiliser la Standard Template Library. Il est conseillé de se référer à la documentation en ligne : http://cplusplus.com/reference/ et notamment http://cplusplus.com/reference/stl/ TD à faire en binôme et à rendre à votre enseignant par mail. [email protected] avec pour entête : [IMAC2][C++][TD10] noms du binôme x Exercice 1. Standard Template Library? Objectif de l’exercice : Un peu de théorie Questions • Définissez en quelques mots la STL? • Quelle classe de la STL utilisez vous régulièrement? • Sur quel mécanisme la STL se repose t’elle principalement? A faire Pour préparer le TP, récupérez votre code ou la correction du TP6. x Exercice 2. Un champs de vecteur Objectif de l’exercice : Utiliser le conteneur vector Révisions : std::vector Questions • Quelle est la complexité d’accès à un élément d’un std::vector • Quelle est la complexité d’ajout d’un élément à un élément d’un std::vector A faire Créez rapidement une struct Vec4f contenant 4 float x, y, z et w. Créez une fonction capable de remplir un std::vector avec n Vec4f aléatoires. 1 x Exercice 3. Iterateurs Objectif de l’exercice : Utiliser un iterateur. Révisions : ::iterator Questions • Rappelez ce qu’est un iterateur. A faire Utilisez précédemment créé. un std::vector¡T¿::const iterator pour afficher le std::vector x Exercice 4. Algorithmes Objectif de l’exercice : Utiliser les algorithmes STL. Révisions : sort Questions • Rappelez ce que sont les algorithmes STL A faire Vous devez trier votre tableau de Vec4f en utilisant la coordonnée z. Référrez vous à la documentation pour comprendre l’utilisation de la fonction std::sort. x Exercice 5. MultiMap ⋆ Objectif de l’exercice : std::multimap Utiliser un conteneur STL complexe Révisions : std::map, Questions • Rappelez ce qu’est une map ou tableau associatif. A faire Lisez et comprenez la classe SpatialHashMap puis implantez les fonctions insert et findNextTo. 2