kutuzzzov

Задачи на тему map и set

Oct 6th, 2025
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.77 KB | None | 0 0
  1. Задачи на std::map
  2. Задача 1: Подсчёт частоты слов
  3. Условие: Напишите функцию, которая подсчитывает частоту каждого слова в строке.
  4.  
  5. #include <iostream>
  6. #include <map>
  7. #include <string>
  8. #include <sstream>
  9.  
  10. // Функция для подсчёта частоты слов
  11.  
  12. int main() {
  13.     std::string text = "this is a simple example this is a test";
  14.     std::map<std::string, int> result = countWordFrequency(text);
  15.  
  16.     for (const auto& pair : result) {
  17.         std::cout << pair.first << ": " << pair.second << "\n";
  18.     }
  19.  
  20.     return 0;
  21. }
  22.  
  23. Задача 2: Поиск максимального значения в std::map
  24. Условие: Напишите функцию, которая находит ключ с максимальным значением в std::map.
  25.  
  26. #include <iostream>
  27. #include <map>
  28. #include <string>
  29.  
  30. // Функция для поиска ключа с максимальным значением
  31.  
  32. int main() {
  33.     std::map<std::string, int> scores = {{"Alice", 85}, {"Bob", 92}, {"Charlie", 78}};
  34.     std::string maxKey = findMaxKey(scores);
  35.     std::cout << "Max key: " << maxKey << "\n"; // Вывод: Max key: Bob
  36.  
  37.     return 0;
  38. }
  39.  
  40. Задача 3: Объединение двух std::map
  41. Условие: Напишите функцию, которая объединяет два std::map. Если ключи совпадают, суммируйте их значения.
  42.  
  43. #include <iostream>
  44. #include <map>
  45. #include <string>
  46.  
  47. // Функция для объединения двух map
  48.  
  49. int main() {
  50.     std::map<std::string, int> map1 = {{"Alice", 10}, {"Bob", 20}};
  51.     std::map<std::string, int> map2 = {{"Bob", 15}, {"Charlie", 25}};
  52.     std::map<std::string, int> merged = mergeMaps(map1, map2);
  53.  
  54.     for (const auto& pair : merged) {
  55.         std::cout << pair.first << ": " << pair.second << "\n";
  56.     }
  57.     // Вывод:
  58.     // Alice: 10
  59.     // Bob: 35
  60.     // Charlie: 25
  61.  
  62.     return 0;
  63. }
  64.  
  65. Задача 4: Удаление элементов с определённым значением
  66. Условие: Напишите функцию, которая удаляет из std::map все элементы с заданным значением.
  67.  
  68. #include <iostream>
  69. #include <map>
  70. #include <string>
  71.  
  72. // Функция для удаления элементов с заданным значением
  73.  
  74. int main() {
  75.     std::map<std::string, int> scores = {{"Alice", 85}, {"Bob", 92}, {"Charlie", 85}};
  76.     removeByValue(scores, 85);
  77.  
  78.     for (const auto& pair : scores) {
  79.         std::cout << pair.first << ": " << pair.second << "\n";
  80.     }
  81.     // Вывод:
  82.     // Bob: 92
  83.  
  84.     return 0;
  85. }
  86.  
  87. Задача 5: Проверка наличия всех ключей из одного std::map в другом
  88. Условие: Напишите функцию, которая проверяет, содержатся ли все ключи из одного std::map в другом.
  89.  
  90. #include <iostream>
  91. #include <map>
  92. #include <string>
  93.  
  94. // Функция для проверки наличия ключей
  95.  
  96. int main() {
  97.     std::map<std::string, int> map1 = {{"Alice", 10}, {"Bob", 20}, {"Charlie", 30}};
  98.     std::map<std::string, int> map2 = {{"Alice", 15}, {"Bob", 25}};
  99.  
  100.     std::cout << std::boolalpha;
  101.     std::cout << "Contains all keys? " << containsAllKeys(map1, map2) << "\n"; // Вывод: Contains all keys? true
  102.  
  103.     return 0;
  104. }
  105.  
  106. Задачи на std::set
  107. Задача 6: Устранение дубликатов из массива
  108. Условие: Напишите функцию, которая устраняет дубликаты из массива и возвращает уникальные элементы.
  109.  
  110. #include <iostream>
  111. #include <set>
  112. #include <vector>
  113.  
  114. // Функция для устранения дубликатов
  115.  
  116. int main() {
  117.     std::vector<int> arr = {1, 2, 2, 3, 4, 4, 5};
  118.     std::set<int> uniqueNumbers = removeDuplicates(arr);
  119.  
  120.     for (const auto& value : uniqueNumbers) {
  121.         std::cout << value << " ";
  122.     }
  123.     // Вывод: 1 2 3 4 5
  124.  
  125.     return 0;
  126. }
  127.  
  128. Задача 7: Пересечение двух множеств
  129. Условие: Напишите функцию, которая находит пересечение двух множеств.
  130.  
  131. #include <iostream>
  132. #include <set>
  133.  
  134. // Функция для пересечения множеств
  135.  
  136. int main() {
  137.     std::set<int> set1 = {1, 2, 3, 4};
  138.     std::set<int> set2 = {3, 4, 5, 6};
  139.     std::set<int> intersection = intersectSets(set1, set2);
  140.  
  141.     for (const auto& value : intersection) {
  142.         std::cout << value << " ";
  143.     }
  144.     // Вывод: 3 4
  145.  
  146.     return 0;
  147. }
  148.  
  149. Задача 8: Разность двух множеств
  150. Условие: Напишите функцию, которая находит разность двух множеств (элементы первого множества, которых нет во втором).
  151.  
  152. #include <iostream>
  153. #include <set>
  154.  
  155. // Функция для разности множеств
  156.  
  157. int main() {
  158.     std::set<int> set1 = {1, 2, 3, 4};
  159.     std::set<int> set2 = {3, 4, 5, 6};
  160.     std::set<int> difference = differenceSets(set1, set2);
  161.  
  162.     for (const auto& value : difference) {
  163.         std::cout << value << " ";
  164.     }
  165.     // Вывод: 1 2
  166.  
  167.     return 0;
  168. }
  169.  
  170. Задача 9: Проверка, является ли одно множество подмножеством другого
  171. Условие: Напишите функцию, которая проверяет, является ли одно множество подмножеством другого.
  172.  
  173. #include <iostream>
  174. #include <set>
  175.  
  176. // Функция для проверки подмножества
  177.  
  178. int main() {
  179.     std::set<int> set1 = {1, 2};
  180.     std::set<int> set2 = {1, 2, 3, 4};
  181.     std::cout << std::boolalpha;
  182.     std::cout << "Is subset? " << isSubset(set1, set2) << "\n"; // Вывод: Is subset? true
  183.  
  184.     return 0;
  185. }
  186.  
  187. Задача 10: Симметричная разность двух множеств
  188. Условие: Напишите функцию, которая находит симметричную разность двух множеств (элементы, которые есть только в одном из множеств).
  189.  
  190. #include <iostream>
  191. #include <set>
  192.  
  193. // Функция для симметричной разности
  194.  
  195. int main() {
  196.     std::set<int> set1 = {1, 2, 3, 4};
  197.     std::set<int> set2 = {3, 4, 5, 6};
  198.     std::set<int> symDiff = symmetricDifference(set1, set2);
  199.  
  200.     for (const auto& value : symDiff) {
  201.         std::cout << value << " ";
  202.     }
  203.     // Вывод: 1 2 5 6
  204.  
  205.     return 0;
  206. }
Advertisement
Add Comment
Please, Sign In to add comment