Traiter des Données avec la STL

Slides:



Advertisements
Présentations similaires
Structures de données avancées : Principales structures de données
Advertisements

Chap. 4 Recherche en Table
Erratum C Surcharge For(int x=0; … 2.
Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Au programme du jour …. Un peu plus de structures de données
Sensibilisation à l’Algorithmique et structure de données
Cours n° 9 Conception et Programmation à Objets
Cours n° 8 Conception et Programmation à Objets
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Chap. 1 Structures séquentielles : listes linéaires
Structures collectives en Java
Structures de données linéaires
OCaml - Les listes L3 MI.
OCaml – Les arbres L3 MI.
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Bibliothèque standard du C++
II. Chaînage, SDD séquentielles
Définition d’un maillon de liste
Points importants de la semaine Les enregistrements.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Standard Template Library (STL)
Structures de données IFT-2000
Etude dune bibliothèque: Permutations sur les listes.
Etude de cas : buffer clavier
Les fichiers indexés (Les B-arbres)
Structures de données IFT Abder Alikacem La classe vector Édition Septembre 2009 Département dinformatique et de génie logiciel.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem La librairie STL du C++ Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Conteneurs STL.
Rappels Java.
Présentation Structures de Données et TDA
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements.
Points importants de la semaine La représentation cachée. Les enregistrements.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
INF1101 Cours11 Monceaux INF1101 – Algorithmes et structures de données.
Structures de données IFT-2000
Le langage C Structures de données
Chapitre IX Gestion de flux.
Algorithmes sur les sons
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Méthodes de tri.
II. Chaînage, SDD séquentielles
ETNA – 1ème année Guillaume Belmas –
Les types composés Les enregistrements.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Let rec f n = if n = 0 then true else g (n-1) g n = if n = 0 then false else f (n-1) val f : int -> bool = val g : int -> bool =
Templates & STL Ou comment ne pas réinventer la roue à chaque fois.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
1 Listes des méthodes de la classe string, et exemples.
Structures de données IFT-2000 Abder Alikacem Standard Template library Semaine 5 Édition Septembre 2009 Département d’informatique et de génie logiciel.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Containeurs & Itérateurs
Transcription de la présentation:

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

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

L’idée Générale de la STL On ne se préoccupe pas de la nature de ce que l’on manipule Conteneurs : chargés de Organisation des données Itérateurs : chargés de l ’Accès aux objets Fonctions de <algoritm>: chargées du Traitement

L’idée Générale de la STL Si le programmeur applique la fonction sort() sur un conteneur : d’Entiers, il récupère le conteneur trié d’Images, il obtiendra le conteneur trié. Il devra définir l’opérateur d’infériorité pour dire : “ Qu’est ce qu’une image inférieure ” La fonction s ’applique sur la suite d ’objets et non sur leur nature.

Les Conteneurs Des objets stockant des objets du même type Il organisent l’ensemble 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

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’

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

Les Itérateurs <Iterator> Un objet permettant d'accéder aux objets d'un conteneur Supporte l’opération d’incrémentation pour “ passer ” à l’objet suivant Différents itérateurs “ Bidirectional_iterator ” : list, set, multiset, map, multimap “ Random_acces_iterator” : vector, deque

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

Les Fonctions <Algorithm> C’est 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

Les Fonctions <Algorithm> S’appliquent à 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 <algorithm> choisie

Les Foncteurs <Functional> 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 <algoritm> utilisent des foncteurs unaires, binaires ou des prédicats

Les Foncteurs <Functional> Définition d’un foncteur unaire Template<class arg,class result> 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

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

Exemple « Trier un Fichier » 1 ifstream fichierCoteR; 2 ofstream fichierCoteW; 3 vector<float> vecCote; 4 ostream_iterator<float> fichierW(fichierCoteW, "\n"); 5 fichierCoteR.open("piece.dat"); 6 copy(istream_iterator<float>(fichierCoteR), istream_iterator<float>(), 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);

Pour en savoir plus Itérateur, vector, algorithm Tutorial sur la STL http://saintmellion.free.fr/cours/C++/stl/iterateur.pdf http://saintmellion.free.fr/cours/C++/stl/vector.pdf http://saintmellion.free.fr/cours/C++/stl/algorithm.pdf Tutorial sur la STL http://w3imagis.imag.fr/Membres/Xavier.Decoret/STL_TUTORIAL/index.html http://www.developpez.biz/download/stl.pdf