簡體   English   中英

對向量的合並向量進行排序

[英]Sort merge vector of vectors

我有一個向量的向量,像這個vector<vector<string>> vecData;

例如,一個向量包含以下數據(向量中的數據已經排序):

vecData[0] == {"1","5"}
vecData[1] == {"2","7"}
vecData[2] == {"6","9"}
vecData[3] == {"4"}`

我怎樣才能得到一個排序的合並向量 resVec

recVec[0] == "1" 
recVec[1] == "2" 
recVec[2] == "4" 
..............
recVec[6] == "9"` 

我試過這樣的事情,但我知道這完全是胡說八道

vector<vector<string>> separateFileData;
............................
vector<string> temp = separateFileData[0];
temp.reserve(1024);
for (auto iter = separateFileData.begin(); iter<separateFileData.end() - 1; iter++)
{
    merge(iter->begin(), iter->end(), (iter+1)->begin(), (iter + 1)->end(), temp.begin());
}

像這樣,假設我理解你是對的。

vector<string> recVec;
for (const auto& v : vecData)
     recVec.insert(recVec.end(), v.begin(), v.end());
sort(recVec.begin(), recVec.end());

來自vecData的所有字符串都合並到recVec中,然后對其進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM