/
lyapdy
/
Object_oriented_programming_cpp_318
Обзор
Документация
Войти
/
lyapdy
/
Object_oriented_programming_cpp_318
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lab8/task_1.cpp
103 строки
3 KB
danillyapunov
tasks 7 and 8 added
30 ноя 2025, 14:31
30 ноя 2025, 14:31
5a9b53a
Код
Авторство
О чём код?
#include "task_1.h" #include <iostream> #include <vector> #include <set> #include <random> #include <algorithm> #include <list> #include <locale> // �㭪�� ��� ����祭�� ��������� ����� �� ���짮��⥫� int getValidatedInput() { int N; std::cout << "������ ������⢮ ������⮢ N (�� 1 �� 1000): "; std::cin >> N; while (N < 1 || N > 1000) { std::cout << "�訡��! ������ � �� 1 �� 1000: "; std::cin >> N; } return N; } // �㭪�� ��� �����樨 ���⥩��� � ��砩�묨 ��� std::vector<int> generateContainer(int n) { std::vector<int> container; container.reserve(n); // ������� ��砩��� �ᥫ std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<int> dist(-1000, 1000); // �।��� �� -1000 �� 1000 for (int i = 0; i < n; ++i) { container.push_back(dist(gen)); } return container; } // �㭪�� ��� �뢮�� ���⥩��� (10 ������⮢ � ��ப�) void printContainer(const std::vector<int>& container) { std::cout << "����ন��� ���⥩���:" << '\n'; for (size_t i = 0; i < container.size(); ++i) { std::cout << container[i]; if ((i + 1) % 10 == 0 || i == container.size() - 1) { std::cout << '\n'; } else { std::cout << " "; } } } // �㭪�� ��� ������ 㭨������ �ᥫ int countUniqueNumbers(const std::vector<int>& container) { std::set<int> uniqueSet(container.begin(), container.end()); return uniqueSet.size(); } // ��������� 蠡������ �㭪権 ��� ������� 1b template<typename Container> void printContainerForward(const Container& container) { std::cout << "����ন��� ���⥩��� � ��אַ� ���浪�:" << '\n'; for (auto it = container.begin(); it != container.end(); ++it) { std::cout << *it << " "; } std::cout << '\n'; } template<typename Container> void printContainerReverse(const Container& container) { std::cout << "����ন��� ���⥩��� � ���⭮� ���浪�:" << '\n'; for (auto it = container.rbegin(); it != container.rend(); ++it) { std::cout << *it << " "; } std::cout << '\n'; } int task_1() { // ������� 1a std::cout << "=== ������� 1a ===" << '\n'; int N = getValidatedInput(); std::vector<int> container = generateContainer(N); printContainer(container); int uniqueCount = countUniqueNumbers(container); std::cout <<"��������� �ᥫ: " << uniqueCount << '\n'; std::cout << '\n' << "=== ������� 1b ===" << '\n'; // �ᯮ��㥬 �� �� ���⥩��� ��� ������� 1b printContainerForward(container); printContainerReverse(container); // �������⥫�� �ਬ�� � ��㣨� ���⥩�� std::cout << '\n' << "=== �ਬ�� � list ===" << '\n'; std::list<int> myList = {10, 20, 30, 40, 50}; printContainerForward(myList); printContainerReverse(myList); return 0; }