Следующий код - моя попытка сформировать объединение набора двух элементов {2,3} с пустым множеством {}. Я ожидаю, что полученный контейнер (в данном случае список) должен иметь размер 2.Формирование объединения двух наборов, кажется, дает неправильные и непоследовательные ответы
Однако, когда я запускаю код, я понимаю, что размер объединения равен 0 или 3, в зависимости от того, какой из двух указаны местоположения для объявления переменной united
. Ни один из этих результатов не является тем, что я ожидал, и они, очевидно, не могут быть верными.
Что мне здесь не хватает?
#include <list>
#include <set>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
//list<int> united; // resulting output is 3
int d1[] = {2,3};
set<int> dom1(d1, d1+2);
set<int> dom2;
list<int> united; // resulting output is 0
set_union(dom1.begin(), dom1.end(), dom2.begin(), dom2.end(), united.begin());
cout << united.size();
return 0;
}