- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我阅读了有关二元和一元函数的教程。我了解它们的结构,但我无法想象在哪种情况下我需要这些功能。你能举个例子来说明它们的用法吗?
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_type
、result_type
等提供 typedef。这些结构,就像 iterator
结构一样只是为了我们的方便,以便重用算法所需的 typedef。
C++11 更新:
从 C++11 开始,新的 std::bind
并不真正需要任何类型定义,因此在某种程度上已经过时了。
关于c++ - 我们需要 unary_function 和 binary_function 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203690/
我在静态库 .a 中定义了一个 std::map,就像这样 ////////////////////////////////////// #import class CCImage; class I
template struct gSorting : public std::binary_function { bool operator() (int number, int n2)
我有一个字节数组,其中包含事件 ID 和一些 ID 的事件数据:{0x1, 0x2, 0x32}//例如,0x1 - eventId,0x2 - 它的数据,0x32 - 另一个事件 ID。 为了解析它
我正在使用 Visual Studio 2010 Beta 2(也尝试过使用 NetBeans),但我在以下代码中遇到了段错误: // One of the @link s20_3_3_compari
包括 #include using namespace std; int main() { binary_function operations[] = { plus(), minus(
std::binary_function现已弃用,将在 c++17 中删除.我搜索了不同的出版物,但我找不到替换它的确切方法。我想知道我应该如何在c++11中编写以下代码风格。 template i
我们目前正在使用一些 3rd 方包,这些包在内部使用了一些 std::binary_function、std::unary_function。您可能知道,这些函数在 C++14 中已被弃用,现在它们都
以下代码: $ cat test02.cpp #include #include #include #include #include struct myadd : public s
我阅读了有关二元和一元函数的教程。我了解它们的结构,但我无法想象在哪种情况下我需要这些功能。你能举个例子来说明它们的用法吗? http://www.cplusplus.com/reference/st
我注意到 std::binary_function is only a struct with typedefs .在链接中,它特别指出: binary_function does not defin
我有这个枚举(类) enum class conditional_operator { plus_op, or_op, not_op } 我想要一个代表这些映射的 std::m
我发现 binary_function 已从 C++11 中删除。我想知道为什么。 C++98: template struct less : binary_function { bool o
我注意到在c++17中binary_function被删除了。而且我不知道如何解决它。有人可以帮我改变结构吗?谢谢 我尝试通过谷歌搜索但找不到解决方案。Visual Studio 2019,C++17
我的 std::map 有一对“唯一键”和“唯一值”。我通常会为一个值找到一个键,并为一个键找到一个值。我已经知道使用 std::find_if + lambda 的方法,但是我想知道是否有更好的方法
1st 是的,我一直在使用 Visual Studio 2008,我相信这个错误是 Visual Studio 2008 特有的。 我正在尝试编写一个仿函数来比较我的结构中的 1 个成员,这样我就可以
我正在尝试编写一个函数来打印 minheap 和 maxheap 的内容,但我在使用比较器时遇到了问题。我尝试使用三元运算符,但它不起作用,因为 std::less 和 std::greater 是不
从 std::binary_function(或 std::unary_function)继承有什么好处? 例如我有这样的代码: class Person { public: Person(
我想尽可能避免代码重复。假设我有一个类,例如, class T { int val; bool operator < (const T& right) const { return v
我是一名优秀的程序员,十分优秀!