Написати функції:
Вектор, який є параметром функції потрібно передавати за посиланням, бо ми повертаємо ітератор.
Якщо вектор, який є параметром функції, передавати за значенням, то буде створено копію вектора. Тому знайдений у функції ітератор буде вказувати на елемент копії вектора, а не на елемент оригінального вектора.
Використовуючи функції написати таку програму:
#include <iostream>
#include <vector>
#include <random>
using namespace std;
// Прототипи функцій
void RandVect(vector<int>& v, int n, int a, int b);
void PrintVect(const vector<int>& v);
vector<int>::iterator FindFirst(vector<int>& v);
vector<int>::iterator FindLast(vector<int>& v);
int main() {
// Введення даних
int n, a, b;
cout << "Введіть кількість елементів вектору (n): ";
cin >> n;
cout << "Введіть мінімальне значення (a): ";
cin >> a;
cout << "Введіть максимальне значення (b): ";
cin >> b;
// Створення та заповнення вектора
vector<int> vec;
RandVect(vec, n, a, b);
// Виведення вектора
cout << "Згенерований вектор: ";
PrintVect(vec);
// Пошук першого від'ємного елементу
auto firstNeg = FindFirst(vec);
if (firstNeg != vec.end()) {
cout << "Перший від'ємний елемент: " << *firstNeg
<< " (індекс " << distance(vec.begin(), firstNeg) << ")" << endl;
} else {
cout << "Від'ємні елементи відсутні" << endl;
}
// Пошук останнього від'ємного елементу
auto lastNeg = FindLast(vec);
if (lastNeg != vec.end()) {
cout << "Останній від'ємний елемент: " << *lastNeg
<< " (індекс " << distance(vec.begin(), lastNeg) << ")" << endl;
} else {
cout << "Від'ємні елементи відсутні" << endl;
}
return 0;
}
// Заповнення вектора випадковими числами
void RandVect(vector<int>& v, int n, int a, int b) {
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<int> dist(a, b);
v.resize(n);
for (int i = 0; i < n; ++i) {
v[i] = dist(gen);
}
}
// Виведення вектора
void PrintVect(const vector<int>& v) {
for (const auto& num : v) {
cout << num << " ";
}
cout << endl;
}
// Пошук першого від'ємного елементу
vector<int>::iterator FindFirst(vector<int>& v) {
for (auto it = v.begin(); it != v.end(); ++it) {
if (*it < 0) {
return it;
}
}
return v.end();
}
// Пошук останнього від'ємного елементу
vector<int>::iterator FindLast(vector<int>& v) {
auto lastNeg = v.end();
for (auto it = v.begin(); it != v.end(); ++it) {
if (*it < 0) {
lastNeg = it;
}
}
return lastNeg;
}
RandVect заповнює вектор випадковими числами з діапазону [a, b].PrintVect відображає всі елементи вектора.FindFirst знаходить перший від'ємний елемент (перебір з початку)FindLast знаходить останній від'ємний елемент (запам'ятовує останній знайдений)
Введіть кількість елементів вектору (n): 8
Введіть мінімальне значення (a): -5
Введіть максимальне значення (b): 5
Згенерований вектор: 2 -3 4 0 -1 5 -2 1
Перший від'ємний елемент: -3 (індекс 1)
Останній від'ємний елемент: -2 (індекс 6)
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить ітератор останнього непарного числа у векторі. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить ітератор першого парного числа у векторі. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього числа, яке кратне 5. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа, яке кратне 3. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього числа, яке кратне 5. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа, яке зкінчується на цифру 0. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього двозначного числа. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого однозначного числа. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього числа, яке починається на цифру 7. Для знаходження першої цифри числа викоритовувати функцію FirstDig. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа, яке починається на цифру 1. Для знаходження першої цифри числа викоритовувати функцію FirstDig. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього не простого числа. Для визначення, чи є число простим, викоритовувати функцію IsPrime. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого простого числа. Для визначення, чи є число простим, викоритовувати функцію IsPrime. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v), яка знаходить у векторі ітератор останнього числа Фібоначчі. Для визначення, чи є елемент числом Фібоначчі, викоритовувати функцію IsFib. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа Фібоначчі. Для визначення, чи є елемент числом Фібоначчі, викоритовувати функцію IsFib. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindLast(vector <int> &v),яка знаходить у векторі ітератор останнього числа, у якого сума цифр непарна. Для обчислення суми цифр, викоритовувати функцію SumDig. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа паліндрома. Для визначення, чи є елемент паліндромом, викоритовувати функцію IsPal. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка:
Напишіть функцію з прототипом vector <int>::iterator FindFirst(vector <int> &v), яка знаходить у векторі ітератор першого числа, у якого сума цифр парна. Для обчислення суми цифр, викоритовувати функцію SumDig. Якщо елемент не знайдено, функція повинна повертати ітератор після кінця вектору.
Напишіть програму, яка: