Menu
Coddy logo textTech

Filtrage de données de vecteur

Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 54 sur 56.

challenge icon

Défi

Facile

Cré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 n représentant le nombre d’entiers dans la collection
  • Puis n entiers représentant les nombres à filtrer
  • Un entier threshold représentant la valeur minimale pour le filtrage

Votre programme doit :

  1. Créer une fonction nommée filterNumbers qui prend un std::vector<int> et un seuil entier comme paramètres
  2. La fonction doit renvoyer un nouveau std::vector<int> contenant uniquement les nombres du vecteur d’origine qui sont supérieurs au seuil
  3. Dans la fonction main, lire les valeurs d’entrée et remplir un vecteur avec les n entiers
  4. Appeler la fonction filterNumbers avec le vecteur rempli et le seuil
  5. 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: 0

N’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

Entraînez-vous par vous-même : Compilateur C++ en ligne