set stl
Apprenez rapidement SET In STL avec des exemples simples.
Nous allons examiner en profondeur le conteneur STL - Ensembles, ici dans ce tutoriel. Les ensembles sont des conteneurs associatifs avec des éléments uniques dans un ordre spécifique.
La valeur d'un élément de l'ensemble est également la clé utilisée pour y accéder. Tous les éléments de l'ensemble doivent être uniques. Nous ne pouvons pas modifier les éléments de l'ensemble une fois qu'ils sont insérés. Cependant, nous pouvons insérer ou supprimer les éléments.
=> Vérifiez ici pour une série de formations C ++ GRATUITES.
Ce que vous apprendrez:
SET Dans STL
Pour implémenter set, nous devons inclure l'en-tête dans notre programme.
Questions et réponses pour l'entretien d'automatisation de l'AQ
#include
Nous pouvons déclarer un ensemble comme suit:
set myset;
Par exemple,si nous voulons un ensemble, myset d'un élément de type entier, alors nous pouvons déclarer l'ensemble comme:
set myset;
Opérations sur le plateau
Le conteneur d'ensemble prend également en charge des opérations similaires comme une carte dont nous avons déjà parlé. Voici quelques-unes des opérations de base prises en charge par set.
- commencer : Renvoie l'itérateur au premier élément de l'ensemble.
- finir : Renvoie l'itérateur de l'élément qui suit le dernier élément de l'ensemble.
- insérer : Insère un nouvel élément dans l'ensemble.
L'opération d'insertion pour l'ensemble a trois variantes:
-
-
- insert (élément): Cela insère directement l'élément dans l'ensemble et réorganise l'ensemble.
- insérer (position, indice): Ici, nous spécifions la position pour insérer l'élément.
- insert (iterator.begin (), iterator.end ()): Dans cette variante, nous pouvons directement insérer la plage dans l'ensemble comme un tableau ou un autre ensemble.
-
- effacer : Supprime un élément de l'ensemble.
- Taille : Renvoie la taille de l'ensemble.
- taille max : Renvoie la taille maximale que l'ensemble peut contenir.
- vider : Renvoie si l'ensemble est vide.
- dégager : Supprime tous les éléments de l'ensemble.
- trouver : Recherche un élément dans l'ensemble. Si un élément est trouvé, il renvoie l'itérateur de cet élément dans l'ensemble. S'il n'est pas trouvé, il renvoie un itérateur à la fin de l'ensemble.
Ci-dessous est un programme qui démontre l'utilisation de certaines fonctions importantes de SET.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Production:
Taille de myset: 4
L'ensemble myset est: 120130140160
Après avoir inséré 100, l'ensemble myset est: 100120130140160
Après avoir inséré le tableau arr, l'ensemble myset est: 100110120130140150160
Après suppression des éléments inférieurs à 130, myset: 130140150160
Comme indiqué dans la sortie ci-dessus, nous créons un ensemble à l'aide d'une simple fonction d'insertion.
Ensuite, on insère l'élément 100 dans l'ensemble en utilisant une autre variante de la fonction d'insertion en passant la référence d'itérateur et la valeur d'élément 100. On voit qu'une fois l'insertion terminée, l'ensemble est réorganisé et l'ordre des éléments est conservé.
Ensuite, nous insérons un tableau {110,150,150} en utilisant la fonction d'insertion. Si vous voyez la sortie d'ensemble affichée après l'insertion d'un tableau, nous voyons qu'une seule valeur de 150 est entrée dans l'ensemble. En effet, tous les éléments de l'ensemble sont uniques.
Nous affichons également la taille de l'ensemble. Ensuite, en utilisant la fonction de recherche, nous trouvons les éléments inférieurs à 130 et appelons ensuite la fonction d'effacement pour supprimer ces éléments. Ensuite, nous affichons l'ensemble résultant.
Tout cela concerne le conteneur défini. Ensuite, nous discuterons du multiset qui est une extension du conteneur d'ensemble.
comment ouvrir les fichiers .xml
Multiset
Un multiset est un conteneur associatif similaire à set dans tous les aspects, à l'exception d'une différence, c'est-à-dire que plusieurs éléments peuvent avoir la même valeur.
La déclaration pour multiset est la suivante:
multiset mset;
Un multiset d'éléments entiers peut être déclaré comme:
mset multiset;
Diverses opérations prises en charge par multiset sont similaires à celles prises en charge par set.
Nous allons maintenant discuter directement d'un exemple multiset qui démontre l'opération qu'il utilise.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Production:
Taille de myset: 4
Après avoir inséré quatre éléments, le myset multiset est: 10 11 13
13
Après avoir inséré 15, le myset multiset est: 10 11 13 13 15
Après suppression des éléments inférieurs à 15, myset: 15
Une capture d'écran de la sortie est donnée ci-dessous:
Comme indiqué dans la sortie ci-dessus, nous entrons initialement quatre éléments dans le multiset dont deux sont identiques. Mais contrairement à un ensemble, ces éléments sont insérés avec succès dans le multiset. Ensuite, nous insérons un autre élément 15 en fournissant la position par un itérateur, qui est inséré avec succès.
Ensuite, nous trouvons des éléments inférieurs à 15 dans le multiset et appelons la fonction d'effacement sur ces éléments. Enfin, nous affichons le multiset.
Ensemble non ordonné
Jusqu'à présent, nous avons discuté de l'ensemble et du multiset dans ce didacticiel.
Alors que l'ensemble est une séquence ordonnée de clés uniques, nous avons un autre conteneur associatif appelé «ensemble non ordonné» qui est un ensemble de clés ou d'éléments qui sont stockés dans n'importe quel ordre. Cela signifie que les éléments de l’ensemble non ordonné sont «non ordonnés».
Semblable à une carte non ordonnée, l'ensemble non ordonné est également implémenté à l'aide d'une table de hachage où les clés sont hachées dans les indices de la table de hachage. En raison de l'utilisation d'une table de hachage, il n'est pas possible de conserver l'ordre des éléments contrairement à l'ensemble qui utilise une structure arborescente équilibrée.
L'en-tête pour l'implémentation d'un ensemble non ordonné est.
#include
Nous déclarons une carte non ordonnée de type entier comme suit:
Unordered_set uset;
Les opérations prises en charge par unordered_set sont similaires à celles prises en charge par unordered_map qui est abordée dans nos tutoriels sur la carte.
Vous trouverez ci-dessous un exemple illustrant les différentes opérations sur unordered_set.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Production:
Taille de l'uset: 5
Les éléments d'un ensemble non ordonné sont: 99 39 6 5 26 4 3 13 2
Clé trouvée = 13
umap bucket_count: 11
bucket_size: 2
Une capture d'écran de la sortie ci-dessus est donnée ci-dessous.
Comme indiqué dans la sortie ci-dessus, nous insérons d'abord 5 éléments dans l'ensemble non ordonné, puis nous insérons 4 autres éléments qui démontrent l'utilisation des variations de fonction d'insertion. Ensuite, nous affichons le contenu de l'ensemble non ordonné.
Ensuite, nous utilisons la fonction find pour trouver si la clé = 13 est présente dans l'ensemble non ordonné ou non.
Ensuite, nous présentons deux autres fonctions 'bucket_count' et 'bucket_size'. Ces fonctions sont liées à l'implémentation interne de la carte non ordonnée.
Ce conteneur prend également en charge les autres fonctions et fonctions de l'itérateur comme max_size, clear, erase, empty, etc. qui sont similaires aux autres conteneurs STL.
Conclusion
Avec cela, nous sommes arrivés à la fin de notre tutoriel sur SET en STL.
Nous espérons que les sujets abordés dans le cadre de ces didacticiels STL vous aideront à mieux comprendre STL et ses différents conteneurs.
questions et réponses entretien ms sql
=> Lisez la série de formations populaires C ++ ici.
lecture recommandée