Crear conjunto y añadir elementos
Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 36 de 56.
Ahora que ya sabes qué es un conjunto, aprendamos cómo crear uno y añadirle elementos. Para añadir elementos a un std::set, utilizas el método .insert().
Aquí tienes cómo crear un conjunto vacío y añadir elementos:
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);La característica más importante de los conjuntos es que rechazan automáticamente los duplicados. Si intentas insertar el mismo valor dos veces, el conjunto permanece sin cambios:
numbers.insert(5); // Esto no añadirá otro 5
numbers.insert(5); // Esto tampoco lo haráDespués de todas estas inserciones, tu conjunto solo contendrá tres elementos únicos: 2, 5 y 8 (ordenados automáticamente). Los intentos duplicados de insertar 5 simplemente se ignoran, que es exactamente lo que hace que los conjuntos sean tan útiles para mantener colecciones de datos únicos.
Desafío
FácilCrea un programa que demuestre la característica de elementos únicos de std::set agregando varios enteros a un conjunto, incluyendo valores duplicados, y luego mostrando el tamaño final para probar que los duplicados se ignoran automáticamente.
Se proporcionarán las siguientes entradas:
- Un entero
nque representa la cantidad de enteros a insertar - Luego,
nenteros para ser insertados en el conjunto
Tu programa debe:
- Crear un
std::set<int>vacío - Leer el número de enteros a insertar
- Usar un bucle para leer cada entero e insertarlo en el conjunto usando el método
.insert() - Después de todas las inserciones, imprimir el tamaño final del conjunto usando el método
.size() - Imprimir un mensaje que muestre cuántos intentos de duplicados fueron ignorados
Usa exactamente el siguiente formato de salida:
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]El número de duplicados ignorados debe calcularse como la diferencia entre el número total de intentos de inserción y el tamaño final del conjunto. Esto demuestra que los conjuntos mantienen automáticamente la unicidad al rechazar valores duplicados, lo cual es su característica clave para almacenar colecciones de elementos únicos.
Hoja de referencia
Para crear un conjunto y añadir elementos, utiliza .insert():
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);Los conjuntos rechazan automáticamente los duplicados; insertar el mismo valor varias veces solo mantiene una copia:
numbers.insert(5); // Esto no añadirá otro 5
numbers.insert(5); // Esto tampocoUtiliza .size() para obtener el número de elementos únicos en el conjunto.
Pruébalo tú mismo
#include <iostream>
#include <set>
using namespace std;
int main() {
// Leer el número de enteros a insertar
int n;
cin >> n;
// Crear un conjunto vacío
set<int> mySet;
// TODO: Escribe tu código aquí
// Usa un bucle para leer n enteros e insertarlos en el conjunto
// Calcula cuántos duplicados fueron ignorados
// Mostrar los resultados
cout << "Set size: " << mySet.size() << endl;
cout << "Duplicates ignored: " << /* calcular duplicados */ << endl;
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Punteros y memoria
¿Qué es un puntero?Operador de direcciónOperador de desreferenciaPunteros nulosPunteros y arraysMemoria dinámica con 'new'Liberar memoria con 'delete'Resumen: Práctica de punteros2Vectores (Arrays dinámicos)
Introducción a std::vectorCreación de un VectorAgregar elementosAcceder a los elementosTamaño del VectorIterar con un bucle ForBucle For basado en rangosEliminar elementosResumen - Operaciones con Vectores5Proyecto: Herramienta de inventario
Configuración del proyectoAgregar y actualizar artículos3Proyecto: Herramienta de lista de tareas
Descripción general del proyectoAñadir una tarea6Conjuntos (Elementos únicos)
Introducción a std::setCrear conjunto y añadir elementosComprobar elementosEliminar elementosIterar sobre un conjuntoResumen - Números únicos