关于功能:
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);
}
Run Code Online (Sandbox Code Playgroud)
这里less_than是一个二元函数,如果第一个参数小于第二个参数,则返回true.这正是这样std::less做的.它的强大之std::sort处在于它允许您提供任何返回的二进制函数,bool并使用它进行排序.