0

我正在尝试合并两组(在向量中)。

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

联合之后,结果应该包含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");
}

有谁知道问题是什么?

4

1 回答 1

3

您应该使用resize结果向量来适应联合的最大大小,或者使用std::back_inserter

it = set_union(setA.begin(), setA.end(),
               setB.begin(), setB.end(),
               back_inserter(result));
于 2012-08-07T00:53:18.793 回答