La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Traiter des Données avec la STL David Saint-Mellion.

Présentations similaires


Présentation au sujet: "Traiter des Données avec la STL David Saint-Mellion."— Transcription de la présentation:

1 Traiter des Données avec la STL David Saint-Mellion

2 Avantage Les composants de la STL ont été écrits par des spécialistes Ils sont plus efficaces et quun composant Maison La librairie STL est standard, son emploi rend les programmes portables

3 Lidée Générale de la STL On ne se préoccupe pas de la nature de ce que lon manipule –Conteneurs : chargés de Organisation des données –Itérateurs : chargés de l Accès aux objets –Fonctions de : chargées du Traitement

4 Lidée Générale de la STL Si le programmeur applique la fonction sort() sur un conteneur : –dEntiers, il récupère le conteneur trié –dImages, il obtiendra le conteneur trié. Il devra définir lopérateur dinfériorité pour dire : Quest ce quune image inférieure La fonction s applique sur la suite d objets et non sur leur nature.

5 Les Conteneurs Des objets stockant des objets du même type Il organisent lensemble des objets en une séquence pour la parcourir 2 familles de conteneurs : –de séquence : vector, deque et list –Associatifs : set, multiset, map et les multimap

6 Les Conteneurs Deux implémentations en mémoire –Une zone mémoire continue : vector, deque, –La liste : les objets sont dispersés dans la mémoire et relié entre eux par un couple de pointeurs précédent suivant

7 Les Conteneurs Tous les conteneurs disposent de 3 fonctions : –begin() renvoie litérateur sur le 1 er objet –end() renvoie litérateur juste après le dernier objet –empty() renvoie true si le conteneur est vide Le Vector remplace le tableau. Il peut grossir pendant lexécution

8 Les Itérateurs Un objet permettant d'accéder aux objets d'un conteneur Supporte lopération dincrémentation pour passer à lobjet suivant Différents itérateurs – Bidirectional_iterator : list, set, multiset, map, multimap – Random_acces_iterator : vector, deque

9 Les Itérateurs Adaptateurs Lier un flux de données à un conteneur, ostream_iterator ecran(cout," "); copy(vec1.begin(),vec1.end(),ecran); Réaliser les opérations dinsertion dans un conteneur copy(istream_iterator (fichierCoteR), istream_iterator (), back_inserter(vecCote) );

10 Les Fonctions Cest un jeu de 70 fonctions traitant les algorithmes les plus connus : –La copie, –La suppression, –Le remplacement, –La transformation –La recherche avec un critère, – Le tri

11 Les Fonctions Sappliquent à tous les objets ou une partie de 1 ou 2 conteneurs Reçoivent 2 itérateurs définissant la séquence source Parcourent la séquence pour traiter avec la fonction choisie

12 Les Foncteurs Un foncteur est un objet définissant l'opérateur ( ). Les foncteurs prenant : –1 paramètre sont dites unaires, –2 paramètres sont dits binaires Une fonction prédicat est un foncteur qui renvoie un booléen Les fonctions utilisent des foncteurs unaires, binaires ou des prédicats

13 Les Foncteurs Définition dun foncteur unaire Template Struct unary_function { Typedef arg argument_type; Typedef result result_type; }; // Pour une predicat, Result est un bool Le foncteur adaptateur de fonction ptr_fun(--) convertit une fonction maison en foncteur

14 Les Paires Une «paire» est un couple de 2 données. Elle dispose dun constructeur et de 2 attributs : first et second Pair 2 données du même type : pair personne; personne.fisrt = Durant ; Make_paire : 2 données de type différent make_pair personne; cout<<"Age "<

15 Exemple « Trier un Fichier » 1 ifstream fichierCoteR; 2 ofstream fichierCoteW; 3 vector vecCote; 4 ostream_iterator fichierW(fichierCoteW, "\n"); 5 fichierCoteR.open("piece.dat"); 6 copy(istream_iterator (fichierCoteR), istream_iterator (), back_inserter(vecCote); 7 sort(vecCote.begin(), vecCote.end()); 8 fichierCoteR.close(); 9 fichierCoteW.open("piece_t.dat"); 10 copy(vecCote.begin(), vecCote.end(), fichierW);

16 Pour en savoir plus Itérateur, vector, algorithm Tutorial sur la STL RIAL/index.htmlhttp://w3imagis.imag.fr/Membres/Xavier.Decoret/STL_TUTO RIAL/index.html


Télécharger ppt "Traiter des Données avec la STL David Saint-Mellion."

Présentations similaires


Annonces Google