Флаги в функциях в C++
В функциях можно использовать флаги
в неявном виде с помощью инструкции
return. Давайте посмотрим,
как это делается. Пусть у нас есть
следующая функция, проверяющая,
что все элементы вектора положительные
числа:
#include <iostream>
#include <vector>
bool isPositive(std::vector<int> arr) {
bool flag = true;
for (int elem : arr) {
if (elem < 0) {
flag = false;
}
}
return flag;
}
int main() {
return 0;
}
Давайте перепишем код функции с помощью неявного использования флагов:
#include <iostream>
#include <vector>
bool isPositive(std::vector<int> arr) {
for (int elem : arr) {
if (elem < 0) {
return false;
}
}
return true;
}
int main() {
return 0;
}
Как это работает: если в векторе найдется
нужный элемент - мы выйдем из функции
(и из цикла тоже) с помощью return.
Но если в векторе не найдется нужный элемент -
выхода из функции не произойдет и выполнение
дойдет до команды return true. И
получится, что функция вернет true
в знак того, что в векторе все элементы
положительные.
Сделайте функцию, которая параметром будет принимать вектор с числами, и проверять, что все элементы в этом векторе являются четными числами.
Сделайте функцию, которая параметром будет принимать число и проверять, что все цифры этого числа являются нечетными.
Сделайте функцию, которая параметром будет принимать вектор и проверять, есть ли в этом векторе два одинаковых элемента подряд.