Задать вопрос
@igoodmood

Как правильно объединить два не множества?

Здравствуйте! При изучении множеств возник вопрос : Как правильно объединить два не множества такого вида(именно левую часть)? d125afa8ce8144158b16b3b1b855b73e.PNG
Как реализовать пересечение правой части я знаю :
set<int> inter_no_AB;
	set_intersection(begin(universum_diff_A), end(universum_diff_A),
		begin(universum_diff_B), end(universum_diff_B),
		inserter(inter_no_AB, begin(inter_no_AB)));

А вот на счёт левой возникают трудности. Пробовал сделать по аналогии, но не тут-то было :
set<int> diff_union;
	set_union(begin(universum_diff_A), end(universum_diff_A),
		begin(universum_diff_B), end(universum_diff_B),
		inserter(diff_union, begin(diff_union)));

Данный фрагмент кода работает не корректно.
Поэтому прошу Вашей помощи.
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
Если изначальные множества даны, то как-то так:

set<int> A_union_B;
set<int> diff_union;
  set_union(begin(A), end(A),
    begin(B), end(B),
    inserter(A_union_B, begin(A_union_B)));
  set_difference(begin(universum), end(universum),
    begin(A_union_B), end(A_union_B),
    inserter(diff_union, begin(diff_union)));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы