ハイパーエッジの 2 次元ベクトルと隣接リストがあります。ベクトルの和集合を見つけなければなりませんがhyperEdges[i].size()
、たった 2 つのベクトルの和集合しか見つけることができません。これを行うには、以下のコードにどのような改善を加えることができますか? 共用体を新しく宣言された 2-D ベクトルに格納したいconnectedEdges
void find_union()
{
connectedEdges.resize(nEdges+1);
for(int i = 1; i <= nEdges; i++)
{
vector<int>::iterator it;
connectedEdges[i].resize(nEdges+1);
for(int j = 1; j < hyperEdges[i].size()-1; j++)
{
int p = hyperEdges[i][j-1];
int q= hyperEdges[i][j];
it = set_union(adjL[p].begin(), adjL[p].end(),adjL[q].begin(),adjL[q].end(), connectedEdges[i].begin());
connectedEdges[i].resize(it-connectedEdges[i].begin());
}
}
}
例 :
{1,2,4,6,8}
{1,2,3,5,6}
{1,4,7,13,15}
これらの 3 つのセットの和集合{1,2,3,4,5,6,7,8,13,15}
は{1,2,3,4,5,6,8}