gpt4 book ai didi

lambda - 在c++中混合每个和lambdas

转载 作者:行者123 更新时间:2023-12-01 09:07:15 26 4
gpt4 key购买 nike

我想在 C++0x 中使用 lambda 和 for each(基于范围的 for 循环,而不是 STL for_each)。所以我去了 wiki 并尝试使用 lambdas 重写 wiki 中的示例:

    std::vector<int> some_list;
some_list.push_back(42);
some_list.push_back(37);
int total = 0;
int value = 5;
for(int& x:some_list)
{
[](int x)
{
cout << "xL=" <<x <<endl;
};
}

for(auto x:some_list)
cout<< "x="<<x<<endl;

return result;
}

问题是我在 lambda 版本中看不到任何 cout,因为每个版本都很好地打印 x...我认为不可能将每个版本和 lambdas 混合在一起,因为 lambdas 只能代替 "函数”,并且不能充当循环体,但我不确定,所以如果有人能确认它会很酷

编译器:GCC 4.6

最佳答案

您应该在 lambda 本身上调用 operator()。

for(int& x:some_list)
{
[](int x)
{
cout << "xL=" <<x <<endl;
}(x); //notice the "()"
}

关于lambda - 在c++中混合每个和lambdas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635325/

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