c++lambda表达式 for循环
时间: 2023-07-23 18:58:06 浏览: 112
lambda表达式可以与for循环结合使用,用于在每次循环中执行特定的操作。
下面是一个使用lambda表达式和for循环的示例,以便更好地理解:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 使用lambda表达式打印所有元素
std::cout << "打印所有元素:" << std::endl;
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// 使用lambda表达式将所有元素平方
std::cout << "平方后的元素:" << std::endl;
for (auto& num : numbers) {
num = [num]() { return num * num; }(); // 使用lambda表达式计算平方并赋值给当前元素
}
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在上述示例中,我们首先使用lambda表达式打印了vector中的所有元素。然后,我们使用lambda表达式将每个元素平方,并将结果赋值给当前元素。最后,我们再次打印了平方后的元素。
请注意,lambda表达式的语法是`[captures](parameters) { body }`,其中captures是捕获列表,parameters是参数列表,body是函数体。在上述示例中,我们没有使用捕获列表和参数列表。
希望这个例子能帮助你理解在C++中如何使用lambda表达式与for循环结合使用。如果你还有其他问题,请随时提出。
阅读全文