Ensembles en C++

Définir (définir) — c'est un conteneur qui trie automatiquement les éléments ajoutés par ordre croissant. Mais lors de l'ajout de valeurs identiques, set n'en stockera qu'une seule instance (multiset - multiset- peut contenir des doublons). Lorsqu'un nouvel élément est ajouté à l'ensemble, il se met immédiatement en place afin de ne pas violer l'ordre de tri.  

Les ensembles en C++ sont définis dans la bibliothèque de modèles standard STL via la classe set (multiset).

Les ensembles sont des arbres binaires rouge-noir. Les opérations de recherche, de suppression et d'insertion ont une complexité logarithmique.
 
Pour utiliser des ensembles, vous devez inclure la bibliothèque “set” : #include <set>
Définir la déclaration :
définir<int> monEnsemble ; // Déclaration d'un ensemble vide. multiset<int> monEnsemble ; // Déclaration d'un multiset vide.  
Fonctions pour travailler avec un ensemble (set)
 
empty() - vérifie l'absence d'éléments dans le conteneur
 
size() - Renvoie le nombre d'éléments dans le conteneur
 
clear() - Efface le conteneur
 
insert() - Insère des éléments
 
erase() - Supprime des éléments
 
count() - Renvoie le nombre d'éléments correspondant à une clé donnée
 
find() - Trouve un élément avec une clé spécifique
 
lower_bound() - Renvoie un itérateur au premier élément au moins égal à la valeur donnée
 
upper_bound() - Renvoie un itérateur au premier élément supérieur à la valeur spécifiée
 

 
Exemple d'ensemble et de multiensemble
#include <iostream> #include <set> en utilisant l'espace de noms std ; int main() { définir<int> monEnsemble1 ; // a déclaré un ensemble vide multiset<int> monEnsemble2 ; // a déclaré un multiset vide // ajoute des éléments à l'ensemble monEnsemble1.insert(1); monEnsemble1.insert(2); monEnsemble1.insert(3); monEnsemble1.insert(1); // ajoute des éléments au multiset monEnsemble2.insert(1); monEnsemble2.insert(2); monEnsemble2.insert(3); monEnsemble2.insert(1); set<int>::iterator it ; // crée un itérateur for(it = mySet1.begin(); it != mySet1.end(); it++) { // Afficher tous les éléments cout << (*il) << " "; // ensembles } cout << fin ; for(it = mySet2.begin(); it != mySet2.end(); it++) { // Afficher tous les éléments cout << (*il) << " "; // multiensembles } renvoie 0 ; }

Utiliser set avec un comparateur
Un exemple de comparateur pour créer un ensemble ordonné par ordre décroissant. structure cmp { bool operator() ( int a, int b) const{ renvoie un > b; } } ;
Utilisation d'un comparateur lors de la création d'un set. définir <int, cmp> s ;