Der folgende Code ist mein Versuch, die Vereinigung der zwei Elementmenge {2,3} mit der leeren Menge {} zu bilden. Ich erwarte, dass der resultierende Container (in diesem Fall eine Liste) sollte Größe 2 haben.Das Bilden der Vereinigung von zwei Mengen scheint falsche und inkonsistente Antworten zu geben
Wenn ich jedoch den Code ausführen, bekomme ich, dass die Größe der Union 0 oder 3 ist, je nachdem, welche der beiden angegebene Orte für die Deklaration der Variablen united
. Keines dieser Ergebnisse ist das, was ich erwartet habe und sie können eindeutig nicht beide richtig sein.
Was fehlt mir hier?
#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;
}