int main()
{
std::vector<int> v;
v.push_back(1);
v.push_back(3);
v.push_back(2);
std::for_each(v.begin(), v.end(), std::cout << boost::lambda::_1 << "\n");
}
可以不使用 Boost 将此代码转换为 C++ 吗?我知道 C++ 0x lambda 表达式语法,但没有尝试在这种情况下使用占位符。
最佳答案
在这种情况下不需要占位符,因为 lambda 捕获参数:
std::for_each(v.begin(), v.end(), [](int x){std::cout << x << "\n";});
关于c++ - 在 C++ 0x 中 boost lambda::_1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220287/