gpt4 book ai didi

c++ - 带有 1 个参数的成员函数上的 std::for_each

转载 作者:太空狗 更新时间:2023-10-29 21:30:33 24 4
gpt4 key购买 nike

我想知道如何实现标题中所述的内容。我试过类似...

std::for_each( a.begin(), a.end(), std::mem_fun_ref( &myClass::someFunc ) )

但我收到一条错误消息,指出“术语”(我假设它表示第 3 个参数)不计算为具有 1 个参数的函数,即使 someFunc 确实采用一个参数- a 中存储的对象的类型。

我想知道我尝试做的事情是否可以使用标准库(我知道我可以使用 boost 轻松完成)。

附言与仅手动迭代 a 并将对象传递给 someFunc 相比,使用 for_eachmem_fun_ref 是否对性能有任何影响? >?

最佳答案

即使 someFunc 是一个只有一个参数的成员,mem_fun_ref 使用隐式第一个参数“myClass”。您想使用 vector 的项目作为第二个参数。

并且使用 for_each 和 mem_fun_ref 可能不会对性能产生负面影响。编译器将生成可比较的代码。但是,唯一可以确定的方法是进行基准测试 :)

  std::for_each(a.begin(), a.end(),
std::bind1st(
std::mem_fun_ref( &MyClass::SomeFunc ),
my_class ));

关于c++ - 带有 1 个参数的成员函数上的 std::for_each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2573325/

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