Фильтрация данных вектора
Часть раздела Логика и управление потоком путешествия по C++ на Coddy. Урок 54 из 56.
Задание
ЛегкоСоздайте программу, реализующую систему фильтрации данных для извлечения определенных чисел из коллекции. Это задание проверит ваше умение сочетать векторы, итерацию, условную логику и проектирование функций для выборочной обработки данных.
Будут предоставлены следующие входные данные:
- Целое число
n, представляющее количество целых чисел в коллекции - Затем
nцелых чисел, представляющих числа для фильтрации - Целое число
threshold, представляющее минимальное значение для фильтрации
Ваша программа должна:
- Создать функцию с именем
filterNumbers, которая принимаетstd::vector<int>и целое число threshold в качестве параметров - Функция должна возвращать новый
std::vector<int>, содержащий только те числа из исходного вектора, которые больше, чем threshold - В функции main прочитать входные значения и заполнить вектор
nцелыми числами - Вызвать функцию
filterNumbersс заполненным вектором и пороговым значением threshold - Сначала вывести количество отфильтрованных чисел, а затем каждое отфильтрованное число на отдельной строке
Используйте следующий точный формат вывода:
Первая строка — количество отфильтрованных чисел:
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;
}Все уроки раздела Логика и управление потоком
1Указатели и память
Что такое указатель?Оператор взятия адресаОператор разыменованияНулевые указателиУказатели и массивыДинамическая память и 'new'Освобождение памяти и 'delete'Итоги: Практика с указателями2Векторы (динамические массивы)
Знакомство с std::vectorСоздание вектораДобавление элементовДоступ к элементамРазмер вектораИтерация с помощью цикла ForRange-based цикл ForУдаление элементовИтоги: операции с векторами5Проект: Инструмент инвентаризации
Настройка проектаДобавление и обновление товаровПотренируйтесь самостоятельно: Онлайн-компилятор C++