要在Lambda表达式中捕获std::array
,可以使用引用捕获。以下是一个示例代码:
#include
#include
int main() {
std::array myArray{1, 2, 3, 4, 5};
int sum = 0;
// 在Lambda表达式中捕获std::array
// 使用引用捕获方式 [&]
[&myArray, &sum]() {
for (int i = 0; i < myArray.size(); i++) {
sum += myArray[i];
}
}();
std::cout << "Sum: " << sum << std::endl;
return 0;
}
在上述代码中,我们使用了一个std::array
存储整数,并在Lambda表达式中捕获了它。我们使用引用捕获&
来确保在Lambda表达式中对myArray
的修改能够影响到外部的sum
变量。在Lambda表达式中,我们遍历myArray
并将其元素累加到sum
变量中。最后,我们打印出sum
的值。
注意,为了使Lambda表达式执行,我们在后面加上了()
,表示调用这个Lambda表达式。这样,Lambda表达式的代码块就会被执行,sum
变量也会被修改。