我正在尝试采用更“功能”的 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 lambdas:
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/