Standard Template Library

Slides:



Advertisements
Présentations similaires
Introduction au Langage C,C++
Advertisements

Erratum C Surcharge For(int x=0; … 2.
Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
Au programme du jour …. Un peu plus de structures de données
Introduction à l’Algorithmique
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
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.
Approfondissement du langage
C.
JAV - TD 6 Structures de données JAVA
Virtools Olivier Lamotte.
FLSI602 Génie Informatique et Réseaux
Initiation à la programmation et algorithmique cours 3
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
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
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
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
Traiter des Données avec la STL
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 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Conteneurs STL.
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 Le préprocesseur. La conversion de types. Les fonctions.
Un langage de programmation hybride
Types de données abstrait et mécanismes d'encapsulation
Les chaînes de caractères
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 4 Polymorphisme II.
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Structures de données IFT-2000
Structures de données IFT-2000
Structures de données IFT-2000
Faculté Polytechnique de Mons
L’essentiel du langage C
2.1 - Historique Chapitre 2 : Introduction au langage C++
Labo II : Tableaux et pointeurs
La notion de type revisitée en POO
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
Cours n° 1 Présentation du langage C++
II. Chaînage, SDD séquentielles
Les types composés Les enregistrements.
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
ISBN Chapitre 10 L'implémentation des sous- programmes.
Tableur 1.Concept : Un tableur permet de manipuler des données, de le présenter, de les trier et d'effectuer automatiquement des calculs sur des nombres.
Cours LCS N°4 Présenté par Mr: LALLALI
Les bases de l’algorithmique
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
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.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
LES CLASSES ET LES OBJETS
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Programmation en C++ Standard Library
Transcription de la présentation:

Standard Template Library STL Standard Template Library

Introduction STL est une bibliothèque standard du C++ fait partie du langage tout le code est contenu dans les fichiers ‘header’, pas de librairies à linker entièrement définie dans l’espace de nommage std repose sur sur le concept de généricité (template) permettant de paramétrer le type d’élément utilisé particulièrement efficace

Organisation La librairie STL est organisée en plusieurs parties. Il existe principalement 3 types d’éléments : les conteneurs permettent de contenir des données les itérateurs permettent aux algorithmes de manipuler les conteneurs : récupérer une donnée et passer à la suivante les algorithmes permettent de manipuler les données d’un conteneur en accédant aux données via les itérateurs on rajoute les ‘strings’ qui définissent les chaînes de caractères comme un type normal (copie, assignation, comparaison, …)

Conteneurs Il s'agit de structures algorithmiques permettant : d'organiser un ensemble de données de même type en séquence, puis de parcourir ces données. Exemples : les listes (list) les tableaux (vector) les listes triées (set) les listes d’associations (map) La définition d’un conteneur est indépendante du type des objets contenus On spécifie ce qu’il contient lors de la déclaration de la variable Allocation dynamique et automatique de la mémoire

Conteneurs … Ordonnés (position indépendante de la valeur) Vecteur : tableau à 1 dimension List : liste doublement chaînée Triés (position dépendante de la valeur) Set/Multiset : ensemble Map/Multimap : tableau associatif

List Insère un élément dans la liste Comme pour tous les composants STL, il faut toujours se placer dans l’espace de nommage std:: #include <iostream> #include <list> int main () { std::list<int> l; l.push_front(3); l.push_front(2); l.push_back(4); l.pop_front(); l.pop_back(); std::cout << l.front() << std::endl; std::cout << l.back() << std::endl; return 0; } Retire un élément de la liste Accède à un élément de la liste

Vector Insère un élément dans le vecteur Utilisation des vecteurs #include <iostream> #include <vector> int main () { std::vector<int> v; v.push_back(3); v.push_back(4); std::cout << v[0] << std::endl; v.at(1) = 5; std::cout << v.back() << std::endl; v.clear(); return 0; } Utilisation des vecteurs Accède au 1er élément Modifie le 2è élément Accède au dernier élément du vecteur Supprime tous les éléments

Quelques méthodes communes Vider le conteneur : void clear(); appelle le destructeur pour chaque objet dans le conteneur désalloue la mémoire utilisée Retourner le nombre d’éléments : int size(); Tester si le conteneur est vide : bool empty();

Itérateurs C’est une généralisation de la notion de pointeur. Il permet de parcourir en séquence les éléments d’un conteneur sans avoir à se préoccuper du type du conteneur. #include <vector> { std::vector<int> v; // std::vector::iterator it1 = v.begin(); std::vector::iterator it2 = v.end(); } it1 it2 T v *it1

Pointe après le dernier élément Itérateurs #include <iostream> #include <list> int main() { std::list<int> liste; for (int i = 0; i < 10; i++) { liste.push_back (i); } std::list<int>::iterator it; for (it = liste.begin (); it != liste.end (); ++it) { int i = *it; std::cout << "i = " << i << std::endl; return (0); Déclaration 1er élément Pointe après le dernier élément

Choisir un conteneur List Vector Map si on a besoin d’insérer ou de supprimer au milieu insertion en temps constant accès au n-ième élément en itérant depuis le 1er Vector si on a besoin d’accéder au n-ième élément insertion et suppression peuvent être coûteuses Très efficace lorsqu’on a à parcourir le conteneur Map sont des listes maintenues triées lors de l’insertion de nouveaux éléments listes associatives