我正在尝试选择更“函数式”的 STL 编程风格,并有以下简化案例
class Widget;
class Zot
{
public:
std::vector<Widget> Widgets;
void ProcessAWidget(int x, Widget w) { ... }
void Process()
{
int ctx=123;
std::for_each(Widgets.begin(), Widgets.end(),
std::bind(&Zot::ProcessAWidget, this, ctx, _1));
}
};
有没有更好的方法来编写 for_each 调用的最后一个参数?
特别是必须明确提及这感觉是“错误的”,并且删除类限定符也很好。
最佳答案
如果编译器支持 C++11 lambda:
std::for_each(Widgets.begin(),
Widgets.end(),
[&](Widget& a_w) { ProcessAWidget(ctx, a_w); });
关于c++ - 如何在成员函数上使用 std::for_each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058603/