STL en c ++: tout ce que vous devez savoir

Cet article vous fournira une connaissance détaillée et complète de STL en C ++ et vous donnera également une idée des différents conteneurs.

La bibliothèque de modèles standard (STL) est un ensemble de classes de modèles C ++ pour fournir des structures de données et des fonctions de programmation courantes telles que des listes, des piles, des tableaux, etc. Dans cet article STL en C ++, nous aborderons les pointeurs suivants:

Passer à cet article sur STL en C ++





Modèles C ++

C ++ nous fournit une fonctionnalité de modèles qui permet aux fonctions et aux classes de fonctionner avec des types génériques. Cela permet la réutilisabilité d'une fonction ou d'une classe et lui permet de travailler sur de nombreux types de données différents sans être réécrit pour chacun.

Passer à cet article sur STL en C ++



Fonctions génériques et STL

Lors de la programmation de nombreuses fois, il est nécessaire de créer des fonctions qui exécutent les mêmes opérations mais fonctionnent avec des types de données différents. Donc, pour surmonter ce problème, C ++ fournit une fonctionnalité pour créer une seule fonction générique au lieu de nombreuses fonctions qui peuvent fonctionner avec différents types de données en utilisant le paramètre de modèle. La collection de ces classes et fonctions génériques est appelée bibliothèque de modèles standard (STL)

Les composants de STL qui font maintenant partie de la bibliothèque C ++ standard sont définis dans l'espace de noms std. Nous devons donc utiliser la directive using namespace pour les importer dans notre programme.

Syntaxe:



Utilisation de l'espace de noms std

STL a trois composants

  • Conteneurs

  • Algorithmes

  • Itérateurs

Ces trois composants fonctionnent ensemble en synergie pour fournir un soutien à une variété de solutions de programmation. L'algorithme emploie des itérateurs pour effectuer des opérations stockées dans des conteneurs.

Un conteneur est un objet qui stocke des données en mémoire de manière organisée. Les conteneurs dans STL sont implémentés par des classes de modèles et peuvent donc être facilement modifiés et personnalisés pour contenir différents types de données.

Une procédure utilisée pour traiter les données contenues dans les conteneurs est définie comme un algorithme. La STL comprend de nombreux types d'algorithmes différents pour prendre en charge des tâches telles que l'initialisation, la recherche, la copie, le tri et la fusion, la copie, le tri et la fusion. Les algorithmes sont implémentés par des fonctions de modèle.

Un itérateur peut être défini comme un objet qui pointe vers un élément dans un conteneur. Les itérateurs peuvent être utilisés pour parcourir le contenu des conteneurs. Les itérateurs sont traités comme des pointeurs. Nous pouvons les incrémenter ou les décrémenter. Les itérateurs connectent l'algorithme aux conteneurs et jouent un rôle clé dans la manipulation des données stockées dans les conteneurs.

Container-STL-in-C++

Passer à cet article sur STL en C ++

Conteneurs

STL définit dix conteneurs qui sont regroupés en trois catégories.

Conteneurs

La description

En tête de fichier

Itérateur

Vecteur

Il peut être défini comme un tableau dynamique. Il permet un accès direct à n'importe quel élément.

algorithme de fibonacci c ++

Accès aléatoire

liste

C'est une liste linéaire bidirectionnelle. Il permet l'insertion et la suppression n'importe où

Bidirectionnel

et

C'est une file d'attente à deux extrémités. Permet des insertions et des suppressions aux deux extrémités. Permet un accès direct à n'importe quel élément.

Accès aléatoire

ensemble

C'est un conteneur associé pour stocker des ensembles uniques. Permet une recherche rapide.

Bidirectionnel

multiset

C'est un conteneur associé pour stocker des ensembles non uniques.

Bidirectionnel

carte

C'est un conteneur associé pour stocker des paires clé / valeur uniques. Chaque clé est associée à une seule valeur.

Bidirectionnel

multimap

C'est un conteneur associé pour stocker la clé / valeur dans lequel une clé peut être associée à plus d'une valeur (mappage un-à-plusieurs). Il permet une recherche basée sur les clés.

Bidirectionnel

empiler

Une pile standard suit le dernier entré, premier sorti (LIFO)

Pas d'itérateur

queue

Une file d'attente standard suit le premier entré, premier sorti (FIFO)

Pas d'itérateur

File d'attente de priorité

Le premier élément sorti est toujours l'élément de priorité la plus élevée

Pas d'itérateur

Conteneurs de séquence

Les conteneurs de séquence stockent les éléments dans un ordre linéaire. Tous les éléments sont liés les uns aux autres par leur position le long de la ligne. Ils permettent l'insertion d'élément et tous supportent plusieurs opérations sur eux.

La STL fournit trois types d'éléments de séquence:

  • Vecteur
  • liste
  • et

Conteneurs associatifs:

Ils sont conçus de manière à pouvoir prendre en charge l'accès direct aux éléments à l'aide de clés. Ils ne sont pas séquentiels. Il existe quatre types de

conteneurs associatifs:

  1. Ensemble
  2. Multiset
  3. Carte
  4. Multimap

Tous les conteneurs ci-dessus stockent les données dans une structure appelée arbre qui facilite

recherche, suppression et insertion contrairement à séquentiel. L'ensemble de conteneurs ou multi-ensembles peut stocker divers éléments et fournir des opérations pour les manipuler en utilisant les valeurs comme clés.

Et la carte ou Multimap sont utilisées pour stocker des éléments par paire, l'un appelé la clé et l'autre

appelé la valeur.

Conteneurs dérivés:

Le STL fournit trois conteneurs dérivés à savoir, pile, file d'attente et priority_queue. Ceux-ci sont également appelés adaptateurs de conteneur.

Il existe trois types de conteneurs dérivés:

1. pile

2. file d'attente

3.Priority_quue

Les piles, la file d'attente et la file d'attente prioritaire peuvent facilement être créées à partir de différents conteneurs de séquence. Les conteneurs dérivés ne prennent pas en charge les itérateurs et nous ne pouvons donc pas les utiliser pour la manipulation de données. Cependant, ils prennent en charge deux fonctions membres pop () et push () pour l'implémentation des opérations de suppression et d'insertion.

Passer à cet article sur STL en C ++

conversion de type de données en java

Algorithmes

Les algorithmes sont des fonctions qui peuvent être utilisées généralement dans une variété de conteneurs pour traiter leur contenu. Bien que chaque conteneur fournisse des fonctions pour ses opérations de base, STL fournit plus de soixante algorithmes standard pour prendre en charge des opérations plus étendues ou complexes. Les algorithmes standard nous permettent également de travailler avec deux types de conteneurs différents en même temps.

Les algorithmes STL renforcent la philosophie de la réutilisabilité. En utilisant ces algorithmes, les programmeurs peuvent économiser beaucoup de temps et d'efforts. Pour avoir accès aux algorithmes STL, nous devons inclure dans notre programme.

L'algorithme STL, basé sur la nature des opérations qu'ils effectuent, peut être classé comme suit:

  • Algorithmes non mutants

  • Algorithmes mutants

  • Algorithmes de tri

  • Définir des algorithmes

  • Algorithme relationnel

Passer à cet article sur STL en C ++

Itérateurs:

Les itérateurs agissent comme des pointeurs et sont utilisés pour accéder aux éléments du conteneur. Nous utilisons des itérateurs pour parcourir le contenu des conteneurs. Les itérateurs sont traités comme des pointeurs. Nous pouvons les incrémenter ou les décrémenter selon nos besoins. Les itérateurs connectent les conteneurs à des algorithmes et jouent un rôle essentiel dans la manipulation des données stockées dans les conteneurs. Ils sont souvent utilisés pour passer d'un élément à un autre, ce processus est appelé itération à travers le conteneur.

Il existe cinq types d'itérateurs:

1. entrée

2. sortie

3. avant

4. bidirectionnel

5. aléatoire

Itérateur

Méthode d'accès

Direction du mouvement

Capacité d'E / S

Remarque

Contribution

Linéaire

Transférer uniquement

Lecture seulement

Ne peut pas être enregistré

Production

Linéaire

Transférer uniquement

Ecrire uniquement

Ne peut pas être enregistré

Vers l'avant

Linéaire

Transférer uniquement

Lire écrire

Peut être sauvé

Bidirectionnel

Linéaire

En avant et en arrière

Lire écrire

Peut être sauvé

Aléatoire

Aléatoire

En avant et en arrière

Lire écrire

Peut être sauvé

Différents types d'itérateurs doivent être utilisés avec les différents types de conteneurs de sorte que seuls

Les conteneurs de séquence et associatifs sont autorisés à parcourir les itérateurs. Chaque type d'itérateurs est utilisé pour exécuter certaines fonctions. Les itérateurs d'entrée et de sortie prennent en charge le moins de fonctions. Ils ne peuvent être utilisés que pour passer dans un conteneur. Les itérateurs avant prennent en charge toutes les opérations des itérateurs d'entrée et de sortie et conservent également leur position dans le conteneur. Un itérateur bidirectionnel, tout en prenant en charge toutes les opérations d'itérateurs avant, offre la possibilité de se déplacer vers l'arrière dans le conteneur.

Nous sommes donc arrivés à la fin de cet article sur «STL en C ++». Si vous souhaitez en savoir plus, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance. Le cours de formation et de certification Java J2EE et SOA d'Edureka est conçu pour vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate et Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog et nous vous répondrons dans les plus brefs délais.