2
숫자가 포함 된 벡터 A가 있습니다. 1,7,9,9,3,13,3 숫자 B가 9,11,7,7,3,2가 들어 있습니다. , 1두 벡터 합집합
아래 두 벡터의 모든 요소를 포함하는 벡터 C를 가져와야합니다. 예를 들어 벡터 A의 숫자 9는 반복해서는 안됩니다. 그래서 C는 1,7,9, 3,13,11,2
이 코드는 두 벡터의 조합이 될 것입니다하지만 반복되는 몇 가지 숫자가있을 것 벡터 C를 만들 것입니다는
을 (하나의 벡터가 다음 배 번호 1을 포함하는 경우 C는 배 번호 1 포함)vector<int>union(vector<int>A,vector<int>B)
{
sort(A.begin(),A.end());
sort(B.begin(),B.end());
vector<int> C(A.size()*2); //vector A has same size as vector B
vector<int>::iterator it= set_union(A.begin(),A.end(),B.begin(),B.end(),C.begin());
C.resize(it-C.begin());
return C;
}
최대한 빨리 작동해야합니다. 이렇게하는 가장 좋은 방법은 무엇입니까?
왜 C를 std :: set 및 covert를 vector로 사용하지 마십시오. – MarsRover
@MarsRover 당신의 절대적으로 맞습니다. 세트는 수학적으로 그리고 프로그램 적으로 주어진 요구 사항에 적합한 선택입니다 – Paranaix
큰 벡터 크기는 매우 느립니다 : (나는 더 빨리 작동시킬 필요가 있습니다. – Serillan