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 ;
}