/
AirLexa
/
04
Обзор
Документация
Войти
/
AirLexa
/
04
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Lesson_01/Task_2/Task_2.cpp
56 строк
1 KB
AirLexa
загрузил Lesson_01/Task_2/Task_2.cpp
07 фев 2026, 16:01
Верифицирован
07 фев 2026, 16:01
0b7253f
Код
Авторство
О чём код?
#include <iostream> #include <variant> #include <algorithm> #include <windows.h> #include <vector> std::variant<int, std::string, std::vector<int>> get_variant() { int random_variable = std::rand() % 3; std::variant<int, std::string, std::vector<int>> result; switch (random_variable) { case 0: result = 5; break; case 1: result = "string"; break; case 2: result = std::vector<int>{ 1, 2, 3, 4, 5 }; break; default: break; } return result; } void check_variant(int i, const std::variant<int, std::string, std::vector<int>> &v) { std::cout << i << ". "; if (std::holds_alternative<int>(v)) { int n = std::get<int>(v); std::cout << "Это число: " << n << ". " << n << " * 2 = " << (n * 2); } else if (std::holds_alternative<std::string>(v)) std::cout << "Это строка: " << std::get<std::string>(v); else if (std::holds_alternative<std::vector<int>>(v)) { std::vector<int> nums = std::get< std::vector<int> >(v); std::cout << "Это вектор:"; std::for_each(nums.begin(), nums.end(), [](int n) { std::cout << ' ' << n; } ); } std::cout<< std::endl; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); std::srand(std::time(nullptr)); for (int i = 0; i < 10; i++) { check_variant(i, get_variant()); } return 0; }