次のコードは、2 つの要素セット {2,3} と空のセット {} の和集合を形成しようとする私の試みです。結果のコンテナー (この場合はリスト) のサイズは 2 になるはずです。
ただし、コードを実行すると、 variable の宣言に対して指定された 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;
}