0

2つのセットを(ベクトルで)結合しようとしています。

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 に答える