dut2 – conception et programmation à objets – marie-josé caraty –...

Click here to load reader

Post on 03-Apr-2015

103 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 1 Cours n 9 Conception et Programmation Objets Rutilisation de composants de la bibliothque standard du C++ (STL) 2/2 Equipe pdagogique Marie-Jos Caraty, Denis Poitrenaud et Mikal Ziane
  • Page 2
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 2 Introduction 1.Conteneurs 1.1.Squences lmentaires Conteneurs vector, deque, list 1.2. Adaptateurs de squence Conteneurs stack, queue, priority_queue 1.3. Conteneurs associatifs Conteneur map, set, multimap, multiset 2.Itrateurs 3.Algorithmes Manipulations - Ordonnancement Recherche - Ensemblistes Conclusion Sommaire
  • Page 3
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 3 Conteneurs indexs par une cl de type quelconque et tris suivant cette cl (gnralisation des squences) Concept de paire (cl, valeur) pour reprsenter un lment set Cl et valeur sont confondues, lments tous distincts map Cl et valeur sont distinctes, cl unique par lment multiset Plusieurs occurrences possibles du mme lment multimap Une mme cl peut correspondre plusieurs lments 1.3. CONTENEURS ASSOCIATIFS Introduction Introduction
  • Page 4
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 4 1.3. CONTENEURS ASSOCIATIFS Mthodes communes des conteneurs associatifs (1/2) Mthodes communes des conteneurs associatifs (1/2) bool empty(); true si le conteneur est vide size_type size() const; Nombre d'lments du conteneur size_type max_size() const; Contenance maximale du conteneur size_type count(const key_T& k) const; Nombre dlments de cl k iterator lower_bound(const key_T& k) const; Itrateur sur le 1 er lment dont la cl est suprieure ou gale k iterator upper_bound(const key_T& k) const; Itrateur sur le 1 er lment dont la cl est infrieure ou gale k
  • Page 5
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 5 iterator find(const key_T& k); Recherche dun lment de cl k key_compare key_comp() const; Objet de type fonction binaire de comparaison de deux cls value_compare value_comp() const; Objet de type fonction binaire de comparaison de deux valeurs void erase(iterator i); Suppression de llment rfrenc par l'itrateur i void erase(iterator debut, iterator fin); Suppression des valeurs de [debut fin[ void erase(const key_T& k); Suppression des valeurs de cl k 1.3. CONTENEURS ASSOCIATIFS Mthodes communes des conteneurs associatifs (2/2) Mthodes communes des conteneurs associatifs (2/2)
  • Page 6
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 6 pair T1 : type du premier lment stock dans la paire T2 : type du deuxime lment stock dans la paire Membres publics et fonction gnrique (externe) make_pair firstmembre correspondant au premier lment stock secondmembre correspondant au deuxime lment stock pair make_pair (const T1& o1, const T2& o2); constitue un objet unique de type pair partir de o1 et o2 Exemple : type pair sur le concept (cl, valeur) dcrivant un objet voiture Pair v; v = make_pair("Peugeot", "207 CC Coup Cabriolet"); Cout s; Dclaration dun ensemble s de cls de type key_T Mmes mthodes que pour le conteneur map Cls et valeurs confondues">
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 9 1.3. CONTENEURS ASSOCIATIFS - Conteneur SET Instanciation et proprits Instanciation et proprits set > s; Dclaration dun ensemble s de cls de type key_T Mmes mthodes que pour le conteneur map Cls et valeurs confondues
  • Page 10
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 10 1.3. CONTENEURS ASSOCIATIFS - Conteneur MULTIMAP Instanciation, proprits et mthodes spcifiques Instanciation, proprits et mthodes spcifiques multimap > mm; Dclaration dun ensemble mm de couples (cls de type key_T, valeurs associes de type value_T) Pas dchec dinsertion Mthodes spcifiques iterator lower_bound(const T& e); Recherche du premier lment de cl k iterator upper_bound(const T& e); Recherche du dernier lment de cl k
  • Page 11 ::iterator it1, it2, it; it1 = conjug.lower_bound(2); it2 = conjug.upper_bound(2); cout ms; Dclaration dun ensemble ms de cls de type key_ T Mmes oprations que pour le conteneur multimap Cls et valeurs confondues">
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 12 1.3. CONTENEURS ASSOCIATIFS - Conteneur MULTISET Instanciation et proprits Instanciation et proprits multiset > ms; Dclaration dun ensemble ms de cls de type key_ T Mmes oprations que pour le conteneur multimap Cls et valeurs confondues
  • Page 13
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 13 2. ITERATEURS Rles des itrateurs Rles des itrateurs Variable qui repre la position d'un lment dans un conteneur Utiliss pour accder/balayer les lments d'un conteneur Accs (lecture/criture) des lments du conteneur Balayage squentiel de tous les lments du conteneur Mthodes membres des conteneurs (sauf adaptateurs) begin(), end() // Balayage du dbut du conteneur sa fin rbegin(), rend() // Balayage de la fin du conteneur son dbut
  • Page 14
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 14 2. ITERATEURS Oprateurs associs Oprateurs associs Gnralisation et amlioration de la sret des pointeurs Soit litrateur It Drfrencement Accs au conteneur dont l'itrateur pointe l'lment *It Dplacement En avant, en arrire ou alatoire Exemples : ++It; It++; // balayage squentiel avant --It; It--; // balayage squentiel arrire It+=5; It-=3; // accs direct
  • Page 15
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 15 2. ITERATEURS Hirarchie des itrateurs Hirarchie des itrateurs Itrateur accs alatoire Lecture et criture Accs alatoire Itrateur bidirectionnel Lecture et criture Dplacement avant/arrire Itrateur unidirectionnel Lecture et criture Dplacement avant Itrateur d'entre Lecture Dplacement avant Itrateur de sortie Ecriture Dplacement avant InputIteratorOutputIterator RandomAccessIterator BidirectionalIterator ForwardIterator, >= +, +=, -, -= [] *, i++, ++i Constructeur copie Oprateur d'assignation ==, != i--, --i *, i++, ++i Constructeur copie Oprateur d'assignation
  • Page 16
  • DUT2 Conception et Programmation Objets Marie-Jos Caraty 2004-2005 16 2. ITERATEURS Dclaration des itrateurs Dclaration des itrateurs A chaque conteneur son type d'itrateur Itrateur accs alatoire (vector et deque) Itrateur bidirectionnel (list, map, set) Types membres des classes conteneurs const_iterator (version constante) iterator (version non constante) Dclaration ditrateur Instanciation du conteneur, oprateur de visibilit, type ditrateur Exemples de dclaration : Dclaration d'un itrateur Itv sur un vecteur d'entiers vector ::iterator Itv; Dclaration d'un itrateur Itl sur une liste d'entiers list ::iterator Itl;
  • Page 17 x_;} }; vector v;...// Vecteur initialis 1 2 3 4 5 vector ::iterator i = find_if(v.begin(), v.end(), PremierPlusGrand (3)); (i!=v.end()) ? cout

View more