gpt4 book ai didi

c++ - 我对 set.union (C++) 有疑问

转载 作者:行者123 更新时间:2023-11-28 00:55:14 27 4
gpt4 key购买 nike

我正在尝试合并两个集合(在一个 vector 中)。

setA 包含 a, b。setB 包含 a, c。

union 后,结果应该包含a、b、c。但是,该程序无法运行,存在某种调试错误。

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
vector<char> setA;
vector<char> setB;
vector<char> result;
vector<char>::iterator it;

setA.push_back('a');
setA.push_back('b');
setB.push_back('a');
setB.push_back('c');

it = set_union(setA.begin(), setA.end(), setB.begin(), setB.end(), result.begin());

for (int i = 0; i < result.size(); i++)
{
cout << result[i] << " ";
}

system("PAUSE");
}

有人知道问题出在哪里吗?

最佳答案

您应该调整结果 vector 以适应并集的最大大小,或者使用std::back_inserter:

it = set_union(setA.begin(), setA.end(),
setB.begin(), setB.end(),
back_inserter(result));

关于c++ - 我对 set.union (C++) 有疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11837881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com