【发布时间】:2020-07-10 10:36:34
【问题描述】:
我想用这个对向量 v 进行排序
std::sort(v.begin(),v.end(),cmpr);
我的 cmpr 函数在哪里
bool cmpr(int a,int b, int c)
{
return a%c <= b%c;
}
现在我想知道如何通过 c?
【问题讨论】:
-
你在找
std::bind -
如前所述,您可以使用
std::bind,或创建一个functor object,并将c作为在构造时初始化的成员。您也可以使用lambda expression。 -
即使您的代码可以工作,您的比较函数也不会遵循
strict-weak-ordering,因为您返回true或false以获取相等的a和@987654333 值@。所以你也需要解决这个问题。