gpt4 book ai didi

c++ - 我们需要 unary_function 和 binary_function 做什么?

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

我阅读了有关二元和一元函数的教程。我了解它们的结构,但我无法想象在哪种情况下我需要这些功能。你能举个例子来说明它们的用法吗?

http://www.cplusplus.com/reference/std/functional/unary_function/

http://www.cplusplus.com/reference/std/functional/binary_function/

最佳答案

这些不是函数,它们是类(实际上是结构,但没关系)。当您定义自己的二进制函数以与 STL 算法一起使用时,您从这些类派生它们以便自动获取所有类型定义。

例如

struct SomeFancyUnaryFunction: public std::unary_function<Arg_t, Result_t>
{
Result_t operator ()(Arg_t const &)
{
...
}
};

现在您不需要手动为 argument_typeresult_type 等提供 typedef。这些结构,就像 iterator 结构一样只是为了我们的方便,以便重用算法所需的 typedef。

C++11 更新:

从 C++11 开始,新的 std::bind 并不真正需要任何类型定义,因此在某种程度上已经过时了。

关于c++ - 我们需要 unary_function 和 binary_function 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203690/

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