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

Structures de données IFT-2000 Abder Alikacem La STL du C++ Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.

Présentations similaires


Présentation au sujet: "Structures de données IFT-2000 Abder Alikacem La STL du C++ Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009."— Transcription de la présentation:

1 Structures de données IFT-2000 Abder Alikacem La STL du C++ Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009

2 STL : Standard Template Library La STL est une bibliothèque de C++ qui permet de mettre en œuvre dautres structures de données plus complexes et de faciliter également lécriture de programmes. En quelques sortes, cette bibliothèque propose des algorithmes clés en main pour beaucoup de problèmes de programmation. Il sagit dune bibliothèque générique qui fournit des solutions pour gérer un ensemble de données en utilisant des algorithmes efficaces. Tous les composants de STL sont des templates

3 STL : Standard Template Library Conteneurs: En C++, une classe contenant un ensemble déléments d'un certain type est appelée conteneur. Ce sont donc eux qui contiendront les informations que lon veut stocker. Itérateurs: utilisés pour parcourir les items qui se retrouvent dans les conteneurs, ils jouent un peu le rôle de pointeurs sur des éléments dun conteneur. Algorithmes: utilisés pour faire des traitements sur les éléments qui se retrouvent dans les conteneurs.

4 Les conteneurs Les conteneurs sont classés suivant trois types: Séquentiels Adapteurs Associatifs vector Tableau list Liste doublement chaînée slist List simplement chaînée deque Tableau avec des opération efficaces dinsertion et de suppression aux extrémités queue File- FIFO (first-in, first-out) stack Pile - LIFO (last in, first out) set Ensemble avec des éléments distincts map Table de hachage multiset Comme lensemble mais autorise des valeurs répétées multimap Comme la table de hachage mais autorise des clefs multiples

5 Conteneurs - Requis Lélément qui sera inclus dans un conteneur doit posséder: constructeur de recopie opérateur = destructeur un constructeur par défaut un test dégalité (opérateur ==) un critère dordre (operateur < et autres)

6 Les itérateurs Un itérateur peut être vu comme un pointeur sur un élément dun conteneur. Chaque conteneur fourni un type ditérateur. Exemple le type list donne un itérateur de type : list :: iterator. Tous les conteneurs définissent deux types ditérateur container::iterator //permet un accès en mode lecture/écriture container::const_iterator //mode lecture seulement

7 Tous les conteneurs offrent les mêmes fonctions de base permettant aux itérateurs daccéder aux éléments begin() Retourne un itérateur pointant au premier élément du conteneur end() Retourne un itérateur pointant après le dernier élément du conteneur Les itérateurs

8 #include using namespace std; int main( ) { list list1; for (int i = 1; i<=40; i++) list1.push_back(i+i); list :: iterator i; for (i = list1.begin( ); i!=list1.end( ); i++) cout <<*i << ; return 0 ; } Les principaux opérateurs sont * donnant accès à la valeur, ++ et -- pour incrémenter et décrémenter une valeur. - Opérateur * : Retourne lélément de la position courante - Opérateur ++ : Fait pointer litérateur à lélément suivant - Opérateur == : Indique si 2 itérateurs pointent sur le même élément - Opérateur = : Assigne un itérateur

9 #include // création dune liste de caractères list coll; for (char c = a; c<=z; c++) coll.push_back(c); // impression de la liste à laide dun itérateur list ::const_iterator pos; for(pos = coll.begin(); pos != coll.end(); pos++) cout << *pos << ; Exemple Les itérateurs

10 Les algorithmes La STL fournit un nombre important dalgorithmes génériques les plus utilisés, tels que les algorithmes de parcours, de recherche et de tri. Ils sappliquent sur les conteneurs. Les algorithmes ne sont pas des fonctions membres des classes des conteneurs. Ce sont plutôt des fonctions globales qui opèrent avec des intérateurs. Pour manipuler cette bibliothèque, il suffit dincorporer dans lentête #include Description de la Standard Template Library du C++


Télécharger ppt "Structures de données IFT-2000 Abder Alikacem La STL du C++ Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009."

Présentations similaires


Annonces Google