Maison > Article > développement back-end > Résumé des conteneurs courants en C++_STL : conteneurs associatifs et conteneurs séquentiels par paires
Dans cette partie, nous introduisons d'abord les opérations courantes des conteneurs associés et des conteneurs séquentiels par paires, puis introduisons celles couramment utilisées Plusieurs conteneurs spécifiques associés.
Le conteneur associatif est un type de collection d'objets de stockage qui prend en charge une requête efficace par clé. La plupart du comportement des conteneurs associatifs est le même que celui des conteneurs séquentiels. La différence essentielle entre les deux est que les conteneurs associatifs stockent et lisent les éléments par clé, tandis que les conteneurs séquentiels stockent et accèdent aux éléments séquentiellement en fonction de leur position dans le conteneur.
Chaque élément d'un conteneur associatif contient une clé et une valeur. Lorsqu'un élément est inséré dans un conteneur associatif, la structure de données interne du conteneur place l'élément à l'emplacement approprié selon certaines règles basées sur la taille de sa valeur clé. Les conteneurs associatifs n'ont pas de tête ni de queue, seuls le plus grand élément et le plus petit élément ne fournissent pas d'opérations front, push_front, pop_front, back, push_back et pop_back.
Les conteneurs associatifs STL standards sont divisés en deux catégories : set (set) et map (mapping), ainsi que leurs dérivés multiset (ensemble multi-clés) et multimap (table de mappage multi-clés). Les mécanismes sous-jacents de ces conteneurs sont tous implémentés dans RB-tree (arbre rouge-noir).
Les conteneurs associatifs partagent la plupart des opérations des conteneurs séquentiels, mais Tous, les conteneurs associatifs ne peuvent pas utiliser les trois constructeurs suivants :
C<T> c;
1
Créez un conteneur vide nommé c. C est le nom du type de conteneur, tel que vector, et T est le type d'élément, tel que int ou string. Fonctionne avec tous les conteneurs.
C<T> c(c2);
1
Créer une copie c du conteneur c2 et c2 doivent avoir le même type de conteneur et stocker le même type ; d'élément. Fonctionne avec tous les conteneurs.
C<T> c(b, e);
1
Crée c dont les éléments sont des copies des éléments dans les plages identifiées par les itérateurs b et e. Fonctionne avec tous les conteneurs.
Les conteneurs associatifs ne peuvent pas être définis par la taille du conteneur, car alors la valeur correspondant à la clé ne peut pas être connu Qu'est-ce que c'est.
Les conteneurs associatifs prennent en charge certains opérateurs relationnels de conteneurs séquentiels.
Les conteneurs associés prennent en charge les opérations de début, de fin, de rbegin et de rendu.
Les conteneurs associatifs prennent en charge les opérations d'échange et d'affectation, mais ne fournissent pas la fonction d'affectation.
Les conteneurs associatifs prennent en charge les fonctions d'effacement et d'effacement, mais l'opération d'effacement des conteneurs associés renvoie le type void.
Les conteneurs associés prennent en charge les fonctions size(), max_size() et empty() en tant qu'opérations de taille de conteneur, mais ne prennent pas en charge la fonction resize().
La paire contient deux valeurs de données. L'utilisation spécifique est la suivante :
pair<T1, T2> p1;
1
Créer un objet paire vide, ses deux éléments sont de type T1 et T2, initialisé par valeur.
pair<T1, T2> p1(v1, v2);
1
Créer un objet paire dont les deux éléments sont respectivement de type T1 et T2, où le premier membre est initialisé comme v1, le deuxième membre est initialisé à v2.
make_pair(v1, v2);
1
Créer un nouvel objet paire avec les valeurs v1 et v2, les types de ses éléments sont respectivement de type v1 et v2 .
p1 < p2;
1
L'opération inférieure à entre deux objets paires, sa définition suit l'ordre lexicographique : si p1.first<p2.first
ou !(p2.first<p1.first)&&p1.second<p2.second
, renvoie vrai.
p1 == p2;
1
Si le premier membre et le deuxième membre de deux objets paires sont égaux dans l'ordre, alors les deux objets sont égaux . L'opération utilise l'opérateur == de ses éléments.
p.first、p.second;
1
Renvoie les membres des données publiques nommés premier et deuxième dans la p.
Lors de la création d'un objet paire, vous devez fournir deux noms de type Chacun des deux données membres de l'objet paire correspond à un Les deux noms de type. peut être différent. Si aucune initialisation explicite n'est fournie lors de la création d'un objet paire, le constructeur par défaut est appelé pour initialiser ses membres ; vous pouvez également utiliser () pour afficher directement la formule d'initialisation lors de la création d'un objet : Si vous utilisez plusieurs objets paires identiques, vous pouvez également utiliser typedef pour simplifier leur déclaration : 1 2 Pour la classe paire, vous pouvez accéder directement à ses données membres. Ses membres sont tous publics et sont nommés respectivement premier membre et deuxième membre. accessible à l’aide de l’opérateur point. Articles connexes : Utilisation de l'itérateur du conteneur standard C++ STL Résumé des points de révision C++ z n° 12 - Chaîne STL Vidéos associées : Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
- pairetypedef pair <string, string> Author;
Author 对象名(初始值1,初始值2);