我正在阅读c ++参考网站。
我不明白这是什么意思?给你解释它是什么意思和它的例子
排版 二进制函数,接受范围中的两个元素作为参数,并返回可转换为bool的值。返回的值表示作为第一个参数传递的元素是否被认为是在它定义的特定严格弱顺序中的第二个参数之前。 该函数不得修改其任何参数。 这可以是函数指针或函数对象。
答案 0 :(得分:8)
关于功能:
void nullary()
void unary(int)
void binary(int, float)
void ternary(int, float, char)
因此二元函数是一个带有两个参数的函数,例如void foo(int x, float y);
。传递给std::sort
的比较函数应该是一个二元函数,它从您正在排序的序列中获取两个元素并返回bool
。例如,如果您要对X
序列进行排序,则该函数应具有签名bool compare(const X&, const X&);
。
以下是一个示例用法:
bool less_than(const int& a, const int& b)
{
return a < b;
}
int main()
{
std::vector<int> v = {5, 1, 2, 4, 3};
std::sort(v.begin(), v.end(), less_than);
}
这里,less_than
是一个二元函数,如果第一个参数小于第二个参数,则返回true。这正是std::less
的作用。 std::sort
的强大之处在于它允许您提供任何返回bool
的二进制函数,并使用它进行排序。