function-object相关内容

你什么时候在 C++ 中使用函数对象?

我看到函数对象经常与 STL 算法一起使用.函数对象是不是因为这些算法而产生的?你什么时候在 C++ 中使用函数对象?它有什么好处? 解决方案 正如 jdv 所说,使用函子代替函数指针,函数指针更难优化和内联编译器;此外,函子的一个基本优点是它们可以轻松地在调用它们之间保持状态1,因此它们可以根据其他时间被调用而不同地工作,以某种方式跟踪它们的参数用过,... 例如,如果您想对两个整 ..
发布时间:2022-01-07 11:38:17 C/C++开发

使用 TypeScript 中的属性构建函数对象

我想创建一个函数对象,它也有一些属性.例如在 JavaScript 中我会这样做: var f = function() { }f.someValue = 3; 现在在 TypeScript 中,我可以将它的类型描述为: var f: { (): any;someValue:数字;}; 但是我实际上无法构建它,而不需要演员.如: var f: { (): any;someValue:数字 ..
发布时间:2021-12-05 15:41:58 其他开发

什么是 C++ 函子及其用途?

我一直听到很多关于 C++ 中的函子的消息.有人能给我一个关于它们是什么以及它们在什么情况下有用的概述吗? 解决方案 仿函数几乎只是一个定义 operator() 的类.这使您可以创建“看起来像"函数的对象: //这是一个函子结构 add_x {add_x(int val) : x(val) {}//构造函数int operator()(int y) const { return x + ..
发布时间:2021-12-01 14:44:37 C/C++开发

是否有间接函子?

我正在寻找一元函子,该函子将取消引用它的参数并返回结果.当然,我可以写一个,似乎应该已经存在了. 因此给出了代码: const auto vals = { 0, 1, 2, 3 }; vector test(size(vals), nullptr); iota(begin(test), end(test), data(vals)); transform(cb ..
发布时间:2020-11-11 20:11:58 C/C++开发

函数实际上比函数指针快吗?

根据斯科特·迈耶斯(Scott Meyers)的观点,C ++超越C的一个方面是函数对象比函数指针要快.他说这是因为内联了函数对象,从而提高了速度. 对此我有两个问题: 我们如何验证实际上是内联的函数对象?我们可以在实践中验证吗? 函数对象的内联是否取决于我们使用的编译器,还是所有编译器的行为都如此? 解决方案 C ++和C标准为编译器留出了很多自由.编译器可以自由地在每 ..
发布时间:2020-11-11 19:53:15 C/C++开发

阶乘如何计算?

说有一个函数可以计算阶乘(n) 阶乘(7)是否为从1到7的n中的每一个创建7个函数对象 并在必要时使用这些值(对于factorial(8)就像factorial(7)* 8一样) 解决方案 这取决于语言和语言实现. 在许多功能语言(例如Haskell)中,保证某个功能什么都不会改变;只返回一个值.由于没有副作用,因此该语言可以记住/缓存或“记住"函数调用的结果. 在 ..
发布时间:2020-11-03 21:56:08 其他开发

从字符串创建函数对象

问题:有没有办法使用字符串在Python中制作函数对象? 信息:我正在一个项目中,我将数据存储在sqlite3服务器后端中。没什么可疯狂的。 DAL类通常是通过代码生成来完成的,因为代码是如此平凡。但这给了我一个主意。在python中找不到属性时,如果定义函数 __ getattr __ ,它将在错误之前调用它。因此,我通过解析器和逻辑树来计算它的方式可以动态生成第一次调用时所需的代码,然后 ..
发布时间:2020-10-04 21:44:25 Python

什么是C ++函子及其用途?

我经常听到很多有关C ++中的函子的信息。有人可以概述一下它们是什么,在什么情况下它们将是有用的吗? 解决方案 函子几乎是只是一个定义operator()的类。这样您就可以创建“看起来像”函数的对象: //这是一个函子 结构add_x { add_x(int val):x(val){} //构造函数 int operator()(int y)const {return x + ..
发布时间:2020-09-26 20:29:52 C/C++开发

函数指针是C ++中的函数对象吗?

C ++标准将函数对象定义为: 函数对象类型是一种对象类型,可以是$ b的类型在函数调用中$ b postfix-expression。 (链接) 首先,我想到函数对象是函子,但后来我意识到对于函数指针 ptr 类型 P (不是函数,而是函数指针), std :: is_object_v 是 true ,可以使用 ptr(Args ...)语法来调用。 我正确的说,函数指 ..
发布时间:2018-04-17 11:23:47 C/C++开发

函数包装器via(function object)类(variadic)模板

C ++ 我试图通过(函数对象)类(variableadic)模板实现函数包装。类具有作为其唯一的数据成员的函数指针,该函数指针由被包装的函数指针初始化或分配。参数化构造函数接受一个函数指针并通过它初始化成员。 operator()方法接受参数(或无),并使用它们调用包装函数。至少这是这个想法。我得到许多错误,我标记与评论。 VC11(与2012年11月CTP,启用可变参数模板)给我错误C2 ..

const和非const函数

这似乎应该经常被问到和回答,但我的搜索fu已经失败了我。 我正在写一个函数,我想接受某种类型的通用可调用对象(包括裸函数,手动函数对象, bind 或 std :: function 函数目前声明如下: 模板 size_t do_something(const T& a,const F& f) { T internal_va ..
发布时间:2016-10-28 02:44:45 C/C++开发