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 <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.