2012-08-07 4 views
0

두 세트 (벡터)를 결합하려고합니다.set.union (C++)에 문제가 있습니다.

세트 A는 a, b를 포함한다. setB에는 a, c가 있습니다.

결합 후 result에는 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"); 
} 

누구에게 무슨 문제가 있는지 알고 있나요?

+2

는 "디버그 오류의 일종"는 무엇을 의미합니까? ** 정확한 ** 오류 메시지 란 무엇입니까? –

+0

표현식 : 벡터 반복기가 증가하지 않습니다 – user1527877

답변

3
당신은 하나 resize 노조의 최대 크기를 수용 또는 사용할 수있는 결과 벡터 std::back_inserter한다

:

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

크기 조정 작업, 대단히 감사합니다! – user1527877