Filtrage de données de vecteur
Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 54 sur 56.
Défi
FacileCréez un programme qui implémente un système de filtrage de données afin d’extraire des nombres spécifiques d’une collection. Ce défi testera votre capacité à combiner des vecteurs, l’itération, la logique conditionnelle et la conception de fonctions pour traiter les données de manière sélective.
Les entrées suivantes seront fournies :
- Un entier
nreprésentant le nombre d’entiers dans la collection - Puis
nentiers représentant les nombres à filtrer - Un entier
thresholdreprésentant la valeur minimale pour le filtrage
Votre programme doit :
- Créer une fonction nommée
filterNumbersqui prend unstd::vector<int>et un seuil entier comme paramètres - La fonction doit renvoyer un nouveau
std::vector<int>contenant uniquement les nombres du vecteur d’origine qui sont supérieurs au seuil - Dans la fonction main, lire les valeurs d’entrée et remplir un vecteur avec les
nentiers - Appeler la fonction
filterNumbersavec le vecteur rempli et le seuil - Afficher d’abord le nombre de nombres filtrés, puis afficher chaque nombre filtré sur une ligne séparée
Utilisez le format de sortie exact suivant :
Première ligne - nombre de nombres filtrés :
Filtered count: [number_of_filtered_elements]Puis chaque nombre filtré sur une ligne séparée :
[filtered_number_1]
[filtered_number_2]
...Si aucun nombre ne passe le filtre, affichez uniquement :
Filtered count: 0N’oubliez pas que votre fonction filterNumbers doit créer un nouveau vecteur vide, parcourir le vecteur d’entrée à l’aide d’une boucle for basée sur une plage et utiliser une instruction if pour vérifier chaque nombre par rapport au seuil. Seuls les nombres strictement supérieurs au seuil doivent être ajoutés au vecteur de résultat à l’aide de push_back(). La fonction doit renvoyer le nouveau vecteur contenant uniquement les éléments filtrés.
Essayez vous-même
#include <iostream>
#include <vector>
using namespace std;
// TODO: Créer la fonction filterNumbers ici
int main() {
// Lire le nombre d'entiers
int n;
cin >> n;
// Lire les entiers dans un vecteur
vector<int> numbers;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
numbers.push_back(num);
}
// Lire le seuil
int threshold;
cin >> threshold;
// TODO: Appeler la fonction filterNumbers et stocker le résultat
// TODO: Afficher le compte filtré et les nombres selon le format requis
return 0;
}Toutes les leçons de Logique et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche6Ensembles (Éléments uniques)
Introduction à std::setCréer un Set et ajouter des élémentsVérifier la présence d'élémentsSupprimer des élémentsParcourir un SetRécapitulatif - Nombres uniques9Défis finaux
Filtrage de données de vecteurRecherche de valeur dans une MapPointeur et tableau dynamiqueEntraînez-vous par vous-même : Compilateur C++ en ligne