POURQUOI HERITER ? - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

POURQUOI HERITER ?

Description:

Un conteneur associatif offre la possibilit de rechercher rapidement les l ments m moris s par leur cl . – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 17
Provided by: gref151
Category:

less

Transcript and Presenter's Notes

Title: POURQUOI HERITER ?


1
Bibliothèque standard du C
2
STL
  • Intérêt
  • Généricité
  • Implantation dynamique d une pile
  • surcharge de l opérateur
  • surcharge du constructeur par copie
  • Implantation chaînage arrière

3
Des structures de données classiques
La bibliothèque standard (Standard
Template Library STL) fournit au
programmeur des classes prédéfinies qui offrent
des structures de données classique, associées à
leurs opérations classiques.
  • Facteurs de qualité des logiciels
  • Fiabilité écrite par des spécialistes (Andrew
    Koenig)
  • Réutilisabilité portabilité
  • Compréhensabilité et facilité de maintenance
  • gt EFFICACITE

4
Des composants réutilisables
Développer rapidement des applications en
assemblant des briques des classes génériques.
Exemple Fusionner deux listes en les triant et
placer le résultat dans un fichier se code en
deux lignes.
5
Conteneurs (template)
http//www.sgi.com/tech/stl/
Pour comprendre les conteneurs proposés dans la
STL, on doit appréhender à la fois les structures
de données, les algorithmes associés et les
itérateurs.
  • Il existe deux grandes catégories de conteneurs
  • Les séquences élémentaires (appelées aussi
    stockages élémentaires).
  • Les dérivées des séquences élémentaires (appelées
    aussi types abstraits de données TDA)
  • Les conteneurs associatifs (clé,valeur)

6
Des composants réutilisables
  • Chaque conteneur possède possède des avantages et
    des inconvénients qui peuvent être appréhendés
    selon ces critères
  • coût des insertions/suppressions
  • coût des accès aux éléments

On choisira un conteneur en cherchant à minimiser
la somme des coûts des opérations les plus
fréquentes effectués sur ceux-ci.
gt voir la complexité des algorithmes (opérations)
7
Les séquences
  • On distingue trois séquences
  • vector (tableau)
  • list (liste)
  • deque
  • (liste à accès préférentiels au premier et
    dernier)

8
Les vecteurs
include ltvector.hgt
include ltvector.hgt include ltiostream.hgt using
namespace std int main (void) vectorltintgt v
V1.push_back(1) V1.push_back(2)V1.push_back(3)
vectorltintgt v2(3) v20 1, v21 2 v22
3 if (v1v2) cout ltlt " OK " else cout ltlt
" ???? (stupeur) " return 0
9
Les séquences opérations communes
  • Méthodes disponibles sur tout conteneur
  • Gestion de la taille du conteneur
  • - size_type size() const
  • - size_type max_size() const
  • - bool empty() const
  • - void resize(size_type, T cT())
  • Accès aux éléments
  • - const_reference front() const
  • - const_reference back() const

10
Les séquences opérations communes
  • Méthodes disponibles sur tout conteneur
  • Insertion des éléments
  • - void push_back(const T)
  • appel du constructeur par copie
  • - .. . insert (...) avec un itérateur
  • Suppression d éléments
  • - void pop_back()
  • - .. . erase (...) avec un itérateur
  • Echange d éléments
  • - void swap(sequenceltTgt)

11
Les séquences opérations communes
Méthodes disponibles sur tout conteneur
Echange d éléments - void swap(sequenceltTgt) S
equence est à remplacer par vector, list ou
deque. Echange this avec les éléments du
conteneur passé en argument. Pour échanger des
éléments de séquences différentes, il faut passer
à une version avec itérateur
12
Les vecteurs
  • Principales opérations (n est la dimension
    du vecteur)
  • Sélecteur gt capacité mémoire réservée donnée en
    nombre d éléments
  • size_type capacity() const
  • Rqe la taille est donnée par size (gt nb
    d éléments)
  • Sélecteur accès indexé 0(1)
  • reference operator(size_type)

13
Les vecteurs
  • Principales opérations (n est la dimension
    du vecteur)
  • Ajout ou suppression d un élément en fin de
    vecteur sans redimensionnement 0(1) push_back
  • Ajout ou suppression d un élément en fin de
    vecteur avec redimensionnement 0(n) push_back
  • Ajout ou suppression d un élément au milieu du
    vecteur 0(n)

14
Les conteneurs associatifs
Contrairement aux séquences, les conteneurs
associatifs peuvent identifier leurs éléments par
la valeur d une clé. Cette clé a parfois pour
valeur une partie de la valeur de l élément. Ces
conteneurs sont particulièrement adaptés dans des
applications où l on doit rechercher des
éléments connaissant leur clé.
15
Les conteneurs associatifs
Ces conteneurs sont  paramétrés  avec le type
de la clé correspondant. .
On doit avoir une relation d ordre total sur les
clés
Opérations sur les clés recherche find
(complexité logarithmique) Comptage selon la clé
count
16
Les conteneurs associatifs
  • On trouve quatre conteneurs associatifs
  • set clé valeur de l élément
  • multiset set avec occurrences multiples
  • map élément (clé,v)
  • multimap map avec occurrences multiples sur clé
Write a Comment
User Comments (0)
About PowerShow.com