我需要聯合一百萬個向量來做這件事我正在使用下面的程序。每個矢量包含十億個元素。聯盟的結果不應包含任何重複。有效地去除C++中的聯合大型向量?
set<unsigned> myfunc()
{
vector<vector<unsigned> > vec(1000000);
set<unsigned> result;
for(int i=0; i<1000000; i++)
result.insert(vec[i].begin(), vec[i].end()); //vec[i] contains a billion elements
return result;
}
有什麼辦法可以將兩個大向量有效地結合起來?由於上面的代碼似乎運行了2個多小時。我正在與128 GB RAM
'向量VEC(1000000);' - 這是一個單「無符號」值的向量,而不是多個向量。 –
PaulMcKenzie
@PaulMcKenzie謝謝你的錯字。 –
_「...聯合一百萬個向量...每個向量都包含十億個元素......」_ - 做數學 - 這需要多少內存?一個XY問題的氣味。 –