什么是C++中的函子?函子这个词在 C++ 中非常有名。函子很像一个行为类似于函数或方法的类。它会让你制作一些类似于函数的对象,并且可以使用operator()。简单来说,函子是那些可以用作函数或类似的对象。当用户想要在函数中传递 1 个以上的参数而该函数不允许时,这些很有用。今天,我们将学习 Ubuntu 20.04 中 C++ 中的函子,并结合一些C++函子用法示例。如何使用C++函子?首先在 Ubuntu 4desktop 上使用“Ctrl+Alt+T”快捷键打开 shell 终端。
示例 01:让我们通过在 shell 中创建一个新的 C++ 文件来开始我们的第一个示例。众所周知的命令“touch”将用于此目的。制作 C++ 文件后,你需要一个编辑器来打开它。“Gnu Nano”编辑器是最值得推荐的一款。因此,我们一直使用“nano”编辑器打开它并在其中创建 C++ 代码。
文章图片
另一个整数变量“res”被声明为从函子获取返回值。这个“f(x,y)”看起来像是一个函数调用,但实际上不是。此语法在此处用于调用函子的 operator()。如果变量“x”大于“y”,则返回1;否则,变量“res”为 0。这里使用了“cout”语句来打印结果值。
文章图片
C++函子用法示例:使用“Ctrl+S”保存代码后,使用“Ctrl+X”快捷键保留代码。现在,是时候编译 C++ 代码了。对于编译,请确保你已经在 Ubuntu 20.04 系统上配置了 g++ 编译器。因此,这里使用 g++ 命令来编译“functor.cc”文件。在此之后,“./a.out”已被用于执行文件。执行结果显示“1”。这意味着变量“x”大于变量“y”。
文章图片
让我们更新我们的 C++ 代码。使用 shell 上的 nano 编辑器打开相同的文件,如下所示。你唯一需要做的更改是将 operator() 中的“大于”符号替换为“小于”符号。其余代码将保持不变。保存更新的文件并在连续使用“Ctrl+S”和“Ctrl+X”的同时保留它。
文章图片
保存文件后,必须再次编译代码。因此,再次使用 g++ 编译器命令来执行此操作。编译后,这个新更新的文件的执行返回0,因为变量“x”不小于变量“y”,即13和6。
文章图片
如何使用C++函子?假设你想在不使用某个函数的情况下将两个整数相加。函子在这里为你提供帮助。它可以使用其中的加号运算符来执行此操作。因此,在编辑器中打开 C++ 文件“functor.cc”,即 GNU Nano,再次更新其代码。“纳米”命令将用于此目的。打开此文件后,让我们在之前完成的同一位置进行更新。我们在变量之间用“加”号代替了“小于”号。这是将两个变量值相加,并将这个值返回给对象调用。
函数调用会将这个值保存到另一个变量“res”中,并在“cout”子句的帮助下将其显示在 shell 上。相同的代码将用于使用“-”符号进行减法。再次按“Ctrl+S”保存你的代码。现在,使用“Ctrl+X”返回 shell 终端。
文章图片
文章图片
C++函子用法示例 02:让我们用一个新的例子来说明函子对象的功能。在“touch”指令的帮助下,创建一个新的 C++ 文件或使用旧文件,即 functor.cc。使用“nano”指令在 GNU Nano 编辑器中打开创建的文件,如本文开头的图片所示。现在,在文件的最顶部添加输入输出流的头文件。必须使用关键字“using”声明标准命名空间。已声明类“Func”,其中包含公共类型对象。第一个是名为“Func”的构造函数,在其参数中采用整数类型参数。这个整数类型的参数值将在“_a”和“(a)”的帮助下保存到变量“a”中。这个构造函数并没有做更多的事情。
在此之后,这里使用函子的运算符来减去两个整数类型的值。“Func”类定义了私有数据类型变量“_a”。主要方法来了。首先,我们创建了一个类“Func”的对象“f1”,并传递给它一个整数类型的值,即“13”。现在,在创建此对象“f1”之后,将执行类“Func”的构造函数“Func”并将值 13 保存到整数变量“_a”中。此后,这里使用了“cout”语句来显示类的对象。没有什么可混淆的。
当对象被调用时,这意味着在这里调用函子 operator() 并赋值为“6”。通过这个,函子使用operator()来计算两个变量的减法并将其返回给主程序。让我们保存代码文件,然后退出。在这里使用“Ctrl+S”和“Ctrl+X”。
文章图片
文章图片
如何使用C++函子?总结【C++函子用法(什么是C++中的函子(如何使用函子?))】什么是C++中的函子?所以,这就是在 Ubuntu 20.04 系统上工作时在 C++ 中使用函子的全部内容。在上面的C++函子用法示例中,我们已经使用了 operator() 来调用函子。我们还看到了如何在 C++ 中使用 Class 及其对象来使用 Functor。我们相信所有的例子都很容易做,并且可以帮助你在 Ubuntu 20.04 Linux 系统中轻松理解 Functors 的概念。
推荐阅读
- 如何在Ubuntu上安装和玩War Thunder(详细步骤图解)
- 如何在Ubuntu中检查软件包的可用版本(详细介绍)
- 如何在Ubuntu上安装反恐精英(详细步骤图解)
- 什么是AWK NF(如何使用?用法详细指南)
- 如何在MySQL中使用SELECT INTO TEMP表语句(用法解析)
- 如何使用mysqli_real_escape_string函数(用法解析)
- 如何使用MySQL COALESCE函数(用法详解)
- MySQL中的datediff是什么(如何使用?)
- MySQL与MongoDB比较(MySQL与MongoDB有什么区别())