Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

Crea 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 n que representa la cantidad de enteros a insertar
  • Luego, n enteros para ser insertados en el conjunto

Tu programa debe:

  1. Crear un std::set<int> vacío
  2. Leer el número de enteros a insertar
  3. Usar un bucle para leer cada entero e insertarlo en el conjunto usando el método .insert()
  4. Después de todas las inserciones, imprimir el tamaño final del conjunto usando el método .size()
  5. 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 tampoco

Utiliza .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;
}
quiz iconPonte a prueba

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