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.
Desafío
FácilCrea 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
nque representa la cantidad de elementos que se agregarán inicialmente al conjunto - Luego,
nnúmeros enteros para ser insertados en el conjunto - Un número entero
mque representa la cantidad de elementos a buscar - Luego,
mnúmeros enteros para verificar su existencia en el conjunto
Tu programa debe:
- Crear un
std::set<int>vacío - Leer la cantidad de elementos a agregar e insertarlos en el conjunto usando
.insert() - Leer la cantidad de elementos a buscar
- Para cada elemento de búsqueda, utiliza el método
.count()para verificar si existe en el conjunto - Imprimir los mensajes apropiados según si cada elemento se encuentra o no
- 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]: FoundPara elementos no encontrados:
Searching for [number]: Not foundResumen 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;
}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