Créer un Set et ajouter des éléments
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 36 sur 56.
Maintenant que vous savez ce qu'est un ensemble (set), apprenons comment en créer un et y ajouter des éléments. Pour ajouter des éléments à un std::set, vous utilisez la méthode .insert().
Voici comment créer un ensemble vide et ajouter des éléments :
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);La caractéristique la plus importante des ensembles (sets) est qu'ils rejettent automatiquement les doublons. Si vous essayez d'insérer la même valeur deux fois, l'ensemble reste inchangé :
numbers.insert(5); // Cela n'ajoutera pas un autre 5
numbers.insert(5); // Ceci non plusAprès toutes ces insertions, votre ensemble ne contiendra que trois éléments uniques : 2, 5 et 8 (triés automatiquement). Les tentatives de doublons pour insérer 5 sont simplement ignorées, ce qui est précisément ce qui rend les ensembles si utiles pour maintenir des collections de données uniques.
Défi
FacileCréez un programme qui démontre la caractéristique d'élément unique de std::set en ajoutant plusieurs entiers à un ensemble, y compris des valeurs en double, puis en affichant la taille finale pour prouver que les doublons sont automatiquement ignorés.
Les entrées suivantes seront fournies :
- Un entier
nreprésentant le nombre d'entiers à insérer - Ensuite,
nentiers à insérer dans l'ensemble
Votre programme doit :
- Créer un
std::set<int>vide - Lire le nombre d'entiers à insérer
- Utiliser une boucle pour lire chaque entier et l'insérer dans l'ensemble en utilisant la méthode
.insert() - Après toutes les insertions, afficher la taille finale de l'ensemble en utilisant la méthode
.size() - Afficher un message indiquant combien de tentatives de doublons ont été ignorées
Utilisez le format de sortie exact suivant :
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]Le nombre de doublons ignorés doit être calculé comme la différence entre le nombre total de tentatives d'insertion et la taille finale de l'ensemble. Cela démontre que les ensembles maintiennent automatiquement l'unicité en rejetant les valeurs en double, ce qui est leur caractéristique clé pour stocker des collections d'éléments uniques.
Aide-mémoire
Pour créer un ensemble et ajouter des éléments, utilisez .insert() :
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);Les ensembles rejettent automatiquement les doublons - insérer la même valeur plusieurs fois ne conserve qu'une seule copie :
numbers.insert(5); // Cela n'ajoutera pas un autre 5
numbers.insert(5); // Celui-ci non plusUtilisez .size() pour obtenir le nombre d'éléments uniques dans l'ensemble.
Essayez vous-même
#include <iostream>
#include <set>
using namespace std;
int main() {
// Lire le nombre d'entiers à insérer
int n;
cin >> n;
// Créer un ensemble vide
set<int> mySet;
// À FAIRE : Écrivez votre code ici
// Utiliser une boucle pour lire n entiers et les insérer dans l'ensemble
// Calculer combien de doublons ont été ignorés
// Afficher les résultats
cout << "Set size: " << mySet.size() << endl;
cout << "Duplicates ignored: " << /* calculer les doublons */ << endl;
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche6Ensembles (Éléments uniques)
Introduction à std::setCréer un Set et ajouter des élémentsVérifier la présence d'élémentsSupprimer des élémentsParcourir un SetRécapitulatif - Nombres uniques