Classes de conteneurs C++<set>

Dans la bibliothèque standard C++<set>est un conteneur associatif qui stocke un ensemble d'éléments uniques et les trie dans un ordre spécifique.

<set>Fournit des opérations efficaces de recherche, d'insertion et de suppression d'éléments. Il est implémenté sur la base d'un arbre rouge-noir et présente donc une complexité temporelle logarithmique pour la recherche, l'insertion et la suppression.

<set>Les types d'éléments stockés dans le conteneur doivent satisfaire aux conditions suivantes :

  • Le type d'élément doit être comparable.
  • Le type d'élément doit être copiable et assignable.

Syntaxe

Inclure le fichier d'en-tête :

#include <set>

Déclarer un conteneur set

std::set<元素类型> 容器名;

Opérations courantes

  • insert(元素): Insérer un élément.
  • erase(元素): Supprimer un élément.
  • find(元素): Rechercher un élément.
  • size(): Renvoyer le nombre d'éléments dans le conteneur.
  • empty(): Vérifier si le conteneur est vide.

Exemple

Voici un exemple utilisant<set>Un exemple simple, incluant l'insertion d'éléments, la recherche, la suppression et l'affichage des résultats.

Exemple

#include <iostream>
#include <set>

int main() {
    // Déclarez un conteneur d'ensemble d'entiers
    std::set<int> mySet;

    // Insérer des éléments
    mySet.insert(10);
    mySet.insert(20);
    mySet.insert(30);
    mySet.insert(40);

    // Afficher les éléments de l'ensemble
    std::cout << "L'ensemble contient : ";
    for (int num : mySet) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // Rechercher l'élément
    if (mySet.find(20) != mySet.end()) {
        std::cout << "20 est dans l'ensemble." << std::endl;
    } else {
        std::cout << "20 n'est pas dans l'ensemble." << std::endl;
    }

    // Supprimer les éléments
    mySet.erase(20);

    // Afficher à nouveau les éléments de l'ensemble
    std::cout << "Après avoir effacé 20, l'ensemble contient : ";
    for (int num : mySet) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // Vérifier si l'ensemble est vide
    if (mySet.empty()) {
        std::cout << "L'ensemble est vide." << std::endl;
    } else {
        std::cout << "L'ensemble n'est pas vide." << std::endl;
    }

    // afficher le nombre d'éléments dans l'ensemble
    std::cout << "L'ensemble contient " << mySet.size() << " éléments." << std::endl;

    return 0;
}

Sortie :

Set contains: 10 20 30 40 
20 is in the set.
After erasing 20, set contains: 10 30 40 
The set is not empty.
The set contains 3 elements.

Résumé

<set>est un conteneur très utile dans la bibliothèque standard C++, particulièrement adapté aux scénarios nécessitant des opérations rapides de recherche, d'insertion et de suppression. Grâce aux exemples ci-dessus, les débutants peuvent<set>avoir une compréhension claire de son utilisation de base. Dans le développement réel, faire un usage raisonnable de<set>Peut améliorer l'efficacité et la lisibilité du programme.

autres extensions