问题标签 [function-object]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 什么是 C++ 函子及其用途?
我一直听到很多关于 C++ 中的函子的信息。有人可以概述一下它们是什么以及它们在什么情况下有用吗?
factorial - 阶乘是如何计算的?
说有一个函数来计算阶乘(n)
factorial(7) 是否为从 1 到 7 的 n 中的每一个创建 7 个函数对象
并在必要时使用这些值(对于阶乘(8),如阶乘(7)* 8)
c++ - 声明函数对象进行比较?
我见过其他人的问题,但没有发现适用于我在这里想要实现的目标。
我正在尝试使用 std::sort 和 a 通过我的 EntityManager 类对实体进行排序std::vector<Entity *>
我收到了十几个错误,例如
我不确定,但 ENTITY_VECTOR 是std::vector<Entity *>
,我不知道在使用 compareByX 函数对象时是否会出现问题?
我对 C++ 很陌生,所以欢迎任何形式的帮助。
javascript - 将方法 operator() 分配给对象
我在现实世界的项目中遇到了这个问题。
我至少需要史蒂夫所说的“将方法 operator() 分配给对象”。重新分配不是一种选择,因为对象太复杂并且不是在 Javascript 中创建的。
我有一个对象 x (但不是一个函数)。我想这样调用一个方法
我试图添加一个apply
和一个call
方法,但它没有用。似乎 Javascript 总是记得“不是函数”(这是我总是得到的错误)。有没有办法“破解” Spidermonkey 引擎来实现这一点?
c++ - 在 C++ 中,编译器“内联”一个函数对象意味着什么?
在关于函数对象的维基百科文章中,它说这些对象在与for_each一起使用时具有性能优势,因为编译器可以“内联”它们。
我对这在这种情况下的确切含义有点模糊......或者我不好意思说的任何情况。谢谢你的帮助!
c++ - 重载“函数调用”运算符有什么用?
我最近发现,在 C++ 中,您可以重载“函数调用”运算符,以一种奇怪的方式,您必须编写两对括号才能这样做:
然后以这种方式使用它:
这什么时候有用?
c++ - 什么时候在 C++ 中使用函数对象?
我看到函数对象经常与 STL 算法一起使用。函数对象是因为这些算法而出现的吗?什么时候在 C++ 中使用函数对象?它有什么好处?
c++ - 函数对象与函数指针
我有两个与函数对象和函数指针有关的问题,
问题:1
当我阅读STL的不同用途sort
算法时,我看到第三个参数可以是一个函数对象,下面是一个例子
问题 :
现在,该声明如何sort(union, union+50,PopLess())
工作?PopLess()
必须解析为与在临时对象上PopLess tempObject.operator()
执行函数相同的内容。operator ()
我认为这是将重载操作的返回值bool
(如我的示例)传递给sort
算法。
那么,这种情况下 sort 函数如何解析第三个参数呢?
问题2
问题
我们是否获得了使用函数对象与函数指针相比的任何特殊优势?如果我们使用下面的函数指针,它会带来任何不利吗?
PS:以上两个参考资料(包括示例)均来自“Stephen C. Dewhurst”的“C++ Common Knowledge: Essential Intermediate Programming”一书。
我无法解码主题内容,因此已发布寻求帮助。
在此先感谢您的帮助。
c++ - 理解 STL 中的函子
引自 NM Jousttis 的“C++ 标准库”,第 5.9 节
在这里,表达式 AddValue(10) 创建了一个 AddValue 类型的对象,该对象使用值 10 进行初始化。AddValue 的构造函数将该值存储为成员 theValue。在 for_each() 内部,为 coll 的每个元素调用“()”。同样,这是对传递的 AddValue 类型的临时函数对象的 operator () 调用。实际元素作为参数传递。函数对象将其值 10 添加到每个元素。然后元素具有以下值: 加 10 后:
for_each() 的第二次调用使用相同的功能将第一个元素的值添加到每个元素。它使用集合的第一个元素初始化 AddValue 类型的临时函数对象:
添加第一个元素后,输出如下:
我不明白的是在第二种情况下为什么输出不是
意思是为每次调用创建一个新的仿函数,还是每次调用都使用仿函数?
c++ - 模板和函数对象 - C++
我对这门课有问题。
目标是使主要功能正常工作。我们应该实现“And”函数对象,这样代码才能工作。我找不到我们的解决方案有什么问题。
(解决方案开始和结束在“main”函数之前的代码中的注释中标记)
你能帮忙吗?
谢谢