如果在STL中使用std :: sort()使用<int,int>
对,则按降序排序对向量?它应首先针对第一个元素排序,然后排序第二个元素。 / p>
答案 0 :(得分:1)
operator<
的{{1}}已超载,因此您可以像对待任何其他向量一样对对向量进行排序。如果您需要降序,您有两个选项 - 排序然后调用pair<int,int>
来反转结果或为排序提供谓词。
您还可以使用std::reverse
:
std::greater
答案 1 :(得分:0)
使用此,
template<class T>
struct sortFunctor: public unary_function<std::pair<int, int>, std::pair<int, int>>
{
bool operator()(const std::pair<int, int>& First, const std::pair<int, int>& Second)
{
if(First.first < Second.first)
{
return false;
}
if(First.first == Second.first && First.second < Second.second)
{
return false;
}
return true;
}
}
然后将此仿函数作为第三个参数传递给sort函数。