以下代码是我尝试将两个元素集 {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;
}