Ошибка C3892 "_UDest: невозможно присваивать значения переменной, которая объявлена как константа"
Код:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
set<int> a, b;
for (size_t i = 0; i < n; i++)
{
int x;
cin >> x;
a.insert(x);
}
for (size_t i = 0; i < m; i++)
{
int x;
cin >> x;
b.insert(x);
}
set_intersection(a.begin(), a.end(), b.begin(), b.end(), a.begin());
for (auto& c : a)
cout << c << " ";
}
Ошибка несомненно связана с set_intersection(), но какая именно, я не имею ни малейшего понятия. В чем причина данной ошибки?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
В том, что вы пытаетесь одновременно и читать, и писать в одно множество. Вы все равно планируете выводить результат - так сразу пишите в выходной поток:
set_intersection(a.begin(), a.end(), b.begin(), b.end(),
ostream_iterator<int>(cout, " "));