简体   繁体   English

对向量的合并向量进行排序

[英]Sort merge vector of vectors

I have a vector of vectors, like this vector<vector<string>> vecData;我有一个向量的向量,像这个vector<vector<string>> vecData;

for example, a vector contains the following data(the data inside the vectors has already been sorted):例如,一个向量包含以下数据(向量中的数据已经排序):

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

how can I get a sorted merged vector resVec我怎样才能得到一个排序的合并向量 resVec

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

I tried something like this, but I understand that this is complete nonsense我试过这样的事情,但我知道这完全是胡说八道

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());
}

Like this, assuming I'm understanding you right.像这样,假设我理解你是对的。

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

All strings from vecData are combined into recVec which is then sorted.来自vecData的所有字符串都合并到recVec中,然后对其进行排序。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM