/
haseew
/
Lab_7
Обзор
Документация
Войти
/
haseew
/
Lab_7
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Containers.cpp
62 строки
2 KB
Egorchik
Lab_7
12 май 2026, 17:22
12 май 2026, 17:22
d36efc2
Код
Авторство
О чём код?
#include "Containers.h" #include <set> #include <map> // решение задачи на ассоциативные контейнеры номер 1 void solve_associative_1(const std::vector<int>& numbers) { std::set<int> seen_numbers; for (int num : numbers) { // если число уже есть в множестве, выводим yes if (seen_numbers.count(num) > 0) { std::cout << "YES" << std::endl; } else { // если число встретилось впервые, выводим no и сохраняем его std::cout << "NO" << std::endl; seen_numbers.insert(num); } } } // решение задачи на ассоциативные контейнеры номер 2 void solve_associative_2(const std::vector<std::string>& words) { if (words.empty()) return; // заполняем множество буквами самого первого слова std::set<char> common_letters; for (char c : words[0]) { common_letters.insert(c); } // последовательно пересекаем текущее множество с буквами остальных слов for (size_t i = 1; i < words.size(); ++i) { std::set<char> current_word_letters; for (char c : words[i]) { current_word_letters.insert(c); } std::set<char> intersection; for (char c : common_letters) { if (current_word_letters.count(c) > 0) { intersection.insert(c); } } common_letters = intersection; } // вывод результата в алфавитном порядке за счет свойств std::set for (char c : common_letters) { std::cout << c; } std::cout << std::endl; } // решение задачи на ассоциативные контейнеры номер 3 void solve_associative_3(const std::vector<std::string>& words) { std::map<std::string, int> word_counts; for (const auto& word : words) { // увеличиваем счетчик для текущего слова и сразу выводим его word_counts[word]++; std::cout << word_counts[word] << " "; } std::cout << std::endl; }