C++使用正则表达式自定义排序

场景:对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;
}
);

猜你喜欢

转载自blog.csdn.net/originalcandy/article/details/88658208
今日推荐