Traiter des Donn - PowerPoint PPT Presentation

About This Presentation
Title:

Traiter des Donn

Description:

Title: El ments de la STL Author: Saint-Mellion David LVH Last modified by: Saint-Mellion David LVH Created Date: 2/7/2003 4:27:43 PM Document presentation format – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 17
Provided by: Saint88
Category:
Tags: des | donn | traiter

less

Transcript and Presenter's Notes

Title: Traiter des Donn


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 ltalgoritmgt 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 1er 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 ltIteratorgt
  • 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_iteratorltintgt ecran(cout," ")
  • copy(vec1.begin(),vec1.end(),ecran)
  • Réaliser les opérations dinsertion dans un
    conteneur
  • copy(istream_iteratorltfloatgt(fichierCoteR),
  • istream_iteratorltfloatgt(),
  • back_inserter(vecCote) )

10
Les Fonctions ltAlgorithmgt
  • 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 ltAlgorithmgt
  • 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 ltalgorithmgt choisie

12
Les Foncteurs ltFunctionalgt
  • 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 ltalgoritmgt utilisent des foncteurs
    unaires, binaires ou des prédicats

13
Les Foncteurs ltFunctionalgt
  • Définition dun foncteur unaire
  • Templateltclass arg,class resultgt
  • 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 ltUtilitygt
  • 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 
  • pairltstring, stringgt personne
  • personne.fisrt Durant 
  • Make_paire 2 données de type différent
  • make_pairltstring, intgt personne
  • coutltlt"Age "ltltpersonne.second

15
Exemple  Trier un Fichier 
  • 1 ifstream fichierCoteR
  • 2 ofstream fichierCoteW
  • 3 vectorltfloatgt vecCote
  • 4 ostream_iteratorltfloatgt fichierW(fichierCoteW,
    "\n")
  • 5 fichierCoteR.open("piece.dat")
  • 6 copy(istream_iteratorltfloatgt(fichierCoteR),
  • istream_iteratorltfloatgt(),
  • 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
  • http//saintmellion.free.fr/cours/C/stl/iterateu
    r.pdf
  • http//saintmellion.free.fr/cours/C/stl/vector.p
    df
  • http//saintmellion.free.fr/cours/C/stl/algorith
    m.pdf
  • Tutorial sur la STL
  • http//w3imagis.imag.fr/Membres/Xavier.Decoret/STL
    _TUTORIAL/index.html
  • http//www.developpez.biz/download/stl.pdf
Write a Comment
User Comments (0)
About PowerShow.com