Задачи на std::set в C++. Часть 6
Даны три множества:
std::set<int> set1 = {1, 2, 3, 4, 5, 6};
std::set<int> set2 = {4, 5, 6, 7, 8, 9};
std::set<int> set3 = {6, 7, 8, 9, 10, 11};
Найдите симметрическую разность всех трех множеств (элементы, которые есть только в одном из множеств).
Дана коллекция списков чисел:
std::vector<std::vector<int>> lists = {
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8}
};
Найдите множество чисел, которые являются общими для всех списков.
Даны две коллекции std::map с вложенными множествами:
std::map<std::string, std::set<int>> map1 = {
{"A", {1, 2, 3}},
{"B", {3, 4, 5}},
{"C", {5, 6, 7}}
};
std::map<std::string, std::set<int>> map2 = {
{"B", {3, 4, 8}},
{"C", {5, 6, 9}},
{"D", {7, 8, 9}}
};
Для ключей, присутствующих в обеих коллекциях, найдите пересечение их множеств.
Дан список множеств:
std::vector<std::set<int>> sets = {
{1, 2, 3, 4},
{3, 4, 5, 6},
{5, 6, 7, 8},
{7, 8, 9, 10}
};
Найдите каскадное пересечение: элементы, которые есть в первом и втором, но нет в третьем и четвертом.
Дан контейнер std::map, где значения - списки:
std::map<std::string, std::vector<int>> data = {
{"group1", {1, 2, 3, 4, 5}},
{"group2", {3, 4, 5, 6, 7}},
{"group3", {5, 6, 7, 8, 9}}
};
Найдите множество чисел, которые встречаются ровно в двух группах.
Даны три множества строк:
std::set<std::string> setA = {"apple", "banana", "cherry", "date"};
std::set<std::string> setB = {"banana", "date", "elderberry", "fig"};
std::set<std::string> setC = {"cherry", "date", "fig", "grape"};
Найдите все строки, которые присутствуют ровно в двух множествах.
Дана коллекция множеств:
std::vector<std::set<int>> numberSets = {
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8}
};
Найдите множество чисел, которые отсутствуют хотя бы в одном из множеств.
Даны две коллекции std::map с составными ключами:
std::map<std::pair<std::string, int>, std::set<std::string>> map1 = {
{{"A", 1}, {"x", "y", "z"}},
{{"B", 2}, {"y", "z", "w"}},
{{"C", 3}, {"z", "w", "v"}}
};
std::map<std::pair<std::string, int>, std::set<std::string>> map2 = {
{{"A", 1}, {"x", "y", "a"}},
{{"B", 2}, {"y", "b", "c"}},
{{"D", 4}, {"z", "w", "d"}}
};
Для общих ключей найдите симметрическую разность их множеств.
Дан список множеств разной размерности:
std::vector<std::set<int>> sets = {
{1, 2, 3},
{2, 3, 4, 5},
{3, 4, 5, 6, 7},
{4, 5, 6, 7, 8, 9}
};
Найдите множество чисел, которые образуют возрастающую цепочку: присутствуют в каждом следующем множестве, но отсутствуют в предыдущих.
Даны четыре множества:
std::set<int> set1 = {1, 3, 5, 7, 9};
std::set<int> set2 = {2, 4, 6, 8, 10};
std::set<int> set3 = {1, 2, 3, 5, 7};
std::set<int> set4 = {2, 3, 5, 8, 9};
Найдите все числа, которые являются простыми и присутствуют в нечетных множествах.