gpt4 book ai didi

c++ - 是否可以像指向函数的指针一样将指向运算符的指针作为参数传递?

转载 作者:IT老高 更新时间:2023-10-28 12:35:58 26 4
gpt4 key购买 nike

我在考虑一般情况,以下只是遇到的一个简单的例子,很容易处理,但引起了我的思考。

例如,我使用的是 sort() <algorithm>的功能.而不是将函数定义为

bool cmp (int n1, int n2)
{
return n1 > n2;
}

sort (arr, arr + N, cmp);

在主函数中,我想知道是否可以将指针传递给运算符 > ,就像我对指向函数的指针所做的那样,指向排序函数。如果是,我该如何实现?

最佳答案

您无法获得指向内置运算符的指针。但幸运的是,标准库为所有标准运算符提供了函数对象。在您的情况下,该对象的名称是 std::greater :

sort (arr, arr + N, std::greater<int>{});

从 C++14 开始,你甚至可以省略参数类型,它会从对象的使用方式推导出来:

sort (arr, arr + N, std::greater<>{});

从 C++17 开始,空的 <>也可以省略:

sort (arr, arr + N, std::greater{});

关于c++ - 是否可以像指向函数的指针一样将指向运算符的指针作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com