Vektor-Datenfilterung
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 54 von 56.
Aufgabe
EinfachErstellen Sie ein Programm, das ein Datenfilterungssystem implementiert, um bestimmte Zahlen aus einer Sammlung zu extrahieren. Diese Herausforderung testet Ihre Fähigkeit, Vektoren, Iteration, bedingte Logik und Funktionsdesign zu kombinieren, um Daten selektiv zu verarbeiten.
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
n, die die Anzahl der Ganzzahlen in der Sammlung darstellt - Anschließend
nGanzzahlen, die die zu filternden Zahlen darstellen - Eine Ganzzahl
threshold, die den Mindestwert für die Filterung darstellt
Ihr Programm sollte:
- Eine Funktion namens
filterNumberserstellen, die einenstd::vector<int>und einen Ganzzahl-Schwellenwert (threshold) als Parameter entgegennimmt - Die Funktion sollte einen neuen
std::vector<int>zurückgeben, der nur die Zahlen aus dem ursprünglichen Vektor enthält, die größer als der Schwellenwert sind - In der Hauptfunktion (main) die Eingabewerte lesen und einen Vektor mit den
nGanzzahlen füllen - Die Funktion
filterNumbersmit dem gefüllten Vektor und dem Schwellenwert aufrufen - Zuerst die Anzahl der gefilterten Zahlen ausgeben und dann jede gefilterte Zahl in einer separaten Zeile ausgeben
Verwenden Sie das folgende exakte Ausgabeformat:
Erste Zeile - Anzahl der gefilterten Zahlen:
Filtered count: [number_of_filtered_elements]Dann jede gefilterte Zahl in separaten Zeilen:
[filtered_number_1]
[filtered_number_2]
...Wenn keine Zahlen den Filter passieren, geben Sie nur Folgendes aus:
Filtered count: 0Denken Sie daran, dass Ihre Funktion filterNumbers einen neuen leeren Vektor erstellen, den Eingabevektor mit einer bereichsbasierten for-Schleife (range-based for loop) durchlaufen und eine if-Anweisung verwenden sollte, um jede Zahl gegen den Schwellenwert zu prüfen. Nur Zahlen, die strikt größer als der Schwellenwert sind, sollten mit push_back() zum Ergebnisvektor hinzugefügt werden. Die Funktion sollte den neuen Vektor zurückgeben, der nur die gefilterten Elemente enthält.
Probier es selbst
#include <iostream>
#include <vector>
using namespace std;
// TODO: Erstellen Sie hier die Funktion filterNumbers
int main() {
// Anzahl der Ganzzahlen einlesen
int n;
cin >> n;
// Die Ganzzahlen in einen Vektor einlesen
vector<int> numbers;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
numbers.push_back(num);
}
// Den Schwellenwert einlesen
int threshold;
cin >> threshold;
// TODO: Rufen Sie die Funktion filterNumbers auf und speichern Sie das Ergebnis
// TODO: Geben Sie die gefilterte Anzahl und die Zahlen gemäß dem erforderlichen Format aus
return 0;
}Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügenÜbe selbstständig: Online-C++-Compiler