数字1、7、9、9、3、13、3を含むベクトルAがあります数字9、11、7、7、3、2、1を含むベクトルBがあります
以下の2つのベクトルからすべての要素を含むベクトルCを取得する必要がありますが、それぞれ1回だけです(たとえば、ベクトルAの数値9は繰り返さないでください)。したがって、Cには1,7,9,3,13,11,2が含まれている必要があります。
このコードは、2つのベクトルの和集合となるベクトルCを作成しますが、いくつかの数が繰り返されます(1つのベクトルに3xの数1が含まれる場合、Cには3xの数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;
}
できるだけ速く動作する必要があります。それを行うための最良の方法は何ですか?