c++ - 在 C++ 0x 中 boost lambda::_1

标签 c++ boost lambda placeholder c++11

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/

相关文章:

c++ - 在 64 位 Debian 环境下编译 32 位 qt 源码

性能的 C++ 模板?

c++ - 执行 identity boost::lexical_cast 有什么开销?

c++ - boost::filesystem::path 与 boost::filesystem::wpath

c# - 如何查询 C# 字典并返回一组特定的值

使用 2+ 个捕获元素的带有 lambda 参数的 C++ 宏生成错误

c++ - 在模板参数列表中跳过较早的隐式模板参数,但不会较晚

c++ - 获取 std::complex 的组件作为引用

python - 如何在 boost::python 扩展模块中正确组合 C++ 和 Python 代码?

linq - LINQ(对象)何时过度使用?