要在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变量也会被修改。