Симметричная разность в C++
Алгоритм set_symmetric_difference формирует
отсортированный выход из элементов, не общих
для обоих входов.
Это дополнение к set_union и set_intersection
из основного курса. Дубликаты в каждом входе
обычно убирают заранее.
Запишем два массива и выведем разность:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
int a[] = {1, 2, 5};
int b[] = {2, 3, 5};
std::vector<int> out(4);
auto end = std::set_symmetric_difference(
std::begin(a), std::end(a),
std::begin(b), std::end(b),
out.begin());
for (auto it = out.begin(); it != end; ++it) {
std::cout << *it << " ";
}
std::cout << "\n";
return 0;
}
Постройте симметричную разность {1, 4, 7} и {4, 5, 7} в вектор алгоритмом set_symmetric_difference и выведите элементы.