Menu
Coddy logo textTech

Comprobar elementos

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 37 de 56.

Al trabajar con conjuntos, a menudo es necesario comprobar si un elemento específico existe antes de realizar operaciones sobre él. El método .count() proporciona una forma sencilla de verificar si un elemento está presente en su conjunto.

Al igual que con los mapas, el método .count() devuelve 1 si el elemento existe en el conjunto, y 0 si no. Esto lo hace perfecto para comprobaciones condicionales:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

Este enfoque es mucho más seguro que intentar acceder a los elementos directamente, especialmente cuando no estás seguro de si existen. Puedes usar .count() para validar la entrada del usuario, prevenir errores o tomar decisiones basadas en lo que está almacenado actualmente en tu conjunto.

challenge icon

Desafío

Fácil

Crea un programa que demuestre cómo verificar de forma segura la existencia de elementos en un std::set antes de realizar operaciones con ellos. Este desafío pondrá a prueba tu comprensión del método .count() para la verificación de elementos.

Se proporcionarán las siguientes entradas:

  • Un número entero n que representa la cantidad de elementos que se agregarán inicialmente al conjunto
  • Luego, n números enteros para ser insertados en el conjunto
  • Un número entero m que representa la cantidad de elementos a buscar
  • Luego, m números enteros para verificar su existencia en el conjunto

Tu programa debe:

  1. Crear un std::set<int> vacío
  2. Leer la cantidad de elementos a agregar e insertarlos en el conjunto usando .insert()
  3. Leer la cantidad de elementos a buscar
  4. Para cada elemento de búsqueda, utiliza el método .count() para verificar si existe en el conjunto
  5. Imprimir los mensajes apropiados según si cada elemento se encuentra o no
  6. Después de todas las búsquedas, imprimir el número total de elementos que fueron encontrados

Utiliza exactamente el siguiente formato de salida:

Para cada resultado de búsqueda:

Searching for [number]: Found

Para elementos no encontrados:

Searching for [number]: Not found

Resumen al final:

Total found: [count] out of [total_searches]

Utiliza numbers.count(searchValue) para verificar si un elemento existe en el conjunto. Si devuelve 1, el elemento existe; si devuelve 0, el elemento no existe. Mantén un contador para rastrear cuántos elementos se encontraron con éxito durante las operaciones de búsqueda.

Hoja de referencia

Usa .count() para comprobar si un elemento existe en un conjunto. Devuelve 1 si el elemento existe, 0 si no:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

Este método es más seguro que intentar acceder a los elementos directamente y es perfecto para comprobaciones condicionales y validación de entradas.

Pruébalo tú mismo

#include <iostream>
#include <set>
using namespace std;

int main() {
    // Leer el número de elementos para añadir al conjunto
    int n;
    cin >> n;
    
    // Crear un conjunto vacío
    set<int> numbers;
    
    // Leer e insertar n elementos en el conjunto
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // Leer el número de elementos a buscar
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: Escribe tu código abajo
    // Para cada elemento de búsqueda:
    // 1. Leer el valor de búsqueda
    // 2. Usar numbers.count(searchValue) para verificar si existe
    // 3. Imprimir el mensaje apropiado
    // 4. Actualizar foundCount si se encuentra el elemento
    
    // Imprimir el resumen
    cout << "Total found: " << foundCount << " out of " << m << 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