场景:对vecDataGroup中的数据(或数据组合)按照在vecRefrence中出现的顺序进行自定义排序。其中的tuple是std的成员
方法:借助C++11的正则表达式
解释:
1 正则表达式
可参见https://www.cnblogs.com/DswCnblog/p/5629165.html
2 item1 item2 是指vecDataGroup中的数据,相当于遍历数据
vector<string> vecReference;
vector<tuple< string , string , string , string >> vecDataGroup;
std::sort(vecDataGroup.begin() , vecDataGroup.end() ,
[vecReference](const tuple< string , string , string , string > & item1 , const tuple< string , string , string , string > & item2)
{
string strEachInGroup1=get<0>(item1)/*+get<3>(item1)*/;
auto itFind1=find(vecReference.begin() , vecReference.end() , strEachInGroup1);
string strEachInGroup2=get<0>(item2)/*+get<3>(item2)*/;
auto itFind2=find(vecReference.begin() , vecReference.end() , strEachInGroup2);
if (itFind1!=vecReference.end() && itFind2!=vecReference.end())
{
return itFind1<itFind2;
}
return false;
}
);