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 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 deux fois la même valeur, 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 set ne contiendra que trois éléments uniques : 2, 5 et 8 (automatiquement triés). Les tentatives d'insertion de doublons de 5 sont simplement ignorées, ce qui est exactement ce qui rend les sets si utiles pour maintenir des collections de données uniques.
Défi
FacileCréez un programme qui démontre la fonctionnalité 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 à l'aide de la méthode
.insert() - Après toutes les insertions, afficher la taille finale de l'ensemble à l'aide de 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.
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