Menu
Coddy logo textTech

Фильтрация данных вектора

Часть раздела Логика и управление потоком путешествия по C++ на Coddy. Урок 54 из 56.

challenge icon

Задание

Легко

Создайте программу, реализующую систему фильтрации данных для извлечения определенных чисел из коллекции. Это задание проверит ваше умение сочетать векторы, итерацию, условную логику и проектирование функций для выборочной обработки данных.

Будут предоставлены следующие входные данные:

  • Целое число n, представляющее количество целых чисел в коллекции
  • Затем n целых чисел, представляющих числа для фильтрации
  • Целое число threshold, представляющее минимальное значение для фильтрации

Ваша программа должна:

  1. Создать функцию с именем filterNumbers, которая принимает std::vector<int> и целое число threshold в качестве параметров
  2. Функция должна возвращать новый std::vector<int>, содержащий только те числа из исходного вектора, которые больше, чем threshold
  3. В функции main прочитать входные значения и заполнить вектор n целыми числами
  4. Вызвать функцию filterNumbers с заполненным вектором и пороговым значением threshold
  5. Сначала вывести количество отфильтрованных чисел, а затем каждое отфильтрованное число на отдельной строке

Используйте следующий точный формат вывода:

Первая строка — количество отфильтрованных чисел:

Filtered count: [number_of_filtered_elements]

Затем каждое отфильтрованное число на отдельных строках:

[filtered_number_1]
[filtered_number_2]
...

Если ни одно число не прошло фильтр, выведите только:

Filtered count: 0

Помните, что ваша функция filterNumbers должна создать новый пустой вектор, перебрать входной вектор с помощью цикла for на основе диапазона (range-based for loop) и использовать оператор if для проверки каждого числа на соответствие порогу. В результирующий вектор с помощью push_back() должны добавляться только те числа, которые строго больше threshold. Функция должна возвращать новый вектор, содержащий только отфильтрованные элементы.

Попробуйте сами

#include <iostream>
#include <vector>
using namespace std;

// TODO: Создайте здесь функцию filterNumbers

int main() {
    // Считать количество целых чисел
    int n;
    cin >> n;
    
    // Считать целые числа в вектор
    vector<int> numbers;
    for (int i = 0; i < n; i++) {
        int num;
        cin >> num;
        numbers.push_back(num);
    }
    
    // Считать пороговое значение
    int threshold;
    cin >> threshold;
    
    // TODO: Вызвать функцию filterNumbers и сохранить результат
    
    // TODO: Вывести количество отфильтрованных чисел и сами числа в соответствии с требуемым форматом
    
    return 0;
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор C++