typedef std::pair<int, double> PAIR_IF;
void CargoPre::SortWithIndex(std::vector <PAIR_IF > &vc, int mode)
{
switch(mode)
{
case 0: /0 for ording data with first(data num) and decline order
{
sort(vc.begin(), vc.end(), [&vc](PAIR_IF a, PAIR_IF b) ->bool{return a.first>b.first;}); descending order
break;
}
case 1: /1 for ording data with second(data) and decline order
{
sort(vc.begin(), vc.end(), [&vc](PAIR_IF a, PAIR_IF b) ->bool{return a.second>b.second;}); descending order
break;
}
case 2: /2 for ording data with first(data num) and increasing order
{
sort(vc.begin(), vc.end(), [&vc](PAIR_IF a, PAIR_IF b) ->bool{return a.first<b.first;}); increasing order
break;
}
case 3:/3 for ording data with second(data) and increasing order
{
sort(vc.begin(), vc.end(), [&vc](PAIR_IF a, PAIR_IF b) ->bool{return a.second<b.second;}); increasing order
break;
}
default:
{
std::cout <<"wrong mode number input" <<std::endl;
break;
}
}
}
这个是我写的一个小排序算法,利用lamda表达式,比如一些数据pair,一个是int型,一个是double型,按照int或者按照double排序,这个一个函数就全包含了