Filtrado de datos de vectores
Parte de la sección Lógica y Flujo del Journey de C++ de Coddy. Lección 54 de 56.
Desafío
FácilCrea un programa que implemente un sistema de filtrado de datos para extraer números específicos de una colección. Este desafío pondrá a prueba tu capacidad para combinar vectores, iteración, lógica condicional y diseño de funciones para procesar datos de forma selectiva.
Se proporcionarán las siguientes entradas:
- Un entero
nque representa la cantidad de enteros de la colección - Después,
nenteros que representan los números que se filtrarán - Un entero
thresholdque representa el valor mínimo para el filtrado
Tu programa debe:
- Crear una función llamada
filterNumbersque reciba unstd::vector<int>y un umbral entero como parámetros - La función debe devolver un nuevo
std::vector<int>que contenga únicamente los números del vector original que sean mayores que el umbral - En la función principal, leer los valores de entrada y llenar un vector con los
nenteros - Llamar a la función
filterNumberscon el vector llenado y el umbral - Imprimir primero la cantidad de números filtrados y después imprimir cada número filtrado en una línea separada
Usa el siguiente formato exacto de salida:
Primera línea: cantidad de números filtrados:
Filtered count: [number_of_filtered_elements]Después, cada número filtrado en líneas separadas:
[filtered_number_1]
[filtered_number_2]
...Si ningún número pasa el filtro, imprime únicamente:
Filtered count: 0Recuerda que tu función filterNumbers debe crear un vector nuevo y vacío, iterar por el vector de entrada mediante un bucle for basado en rangos y usar una instrucción if para comprobar cada número con respecto al umbral. Solo se deben agregar al vector de resultados los números que sean estrictamente mayores que el umbral, utilizando push_back(). La función debe devolver el vector nuevo que contenga únicamente los elementos filtrados.
Pruébalo tú mismo
#include <iostream>
#include <vector>
using namespace std;
// TODO: Crea la función filterNumbers aquí
int main() {
// Leer la cantidad de números enteros
int n;
cin >> n;
// Leer los números enteros en un vector
vector<int> numbers;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
numbers.push_back(num);
}
// Leer el umbral
int threshold;
cin >> threshold;
// TODO: Llamar a la función filterNumbers y almacenar el resultado
// TODO: Imprimir el conteo filtrado y los números según el formato requerido
return 0;
}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 tareaPractica por tu cuenta: Compilador de C++ online