C++ 匿名函数能否返回一个数组
时间: 2024-09-30 10:16:13 浏览: 32
C++ 11,14,17中的 Lambda 表达式 _ Microsoft Docs[2].pdf
C++ 中的匿名函数,也称为 lambda 函数,确实可以返回一个数组。然而,需要注意的是,这通常不是直接通过 lambda 表达式来完成,因为 lambda 函数本身并不支持声明或返回内置类型的数组。你需要将数组作为参数传递给 lambda,然后在内部操作这个数组。
例如,你可以这样做:
```cpp
int arr[] = {1, 2, 3};
auto myLambda = [](const int (&arr)[3]) -> int* {
// 这里对arr进行了操作,例如返回其指针
return arr;
};
// 或者直接复制整个数组
std::array<int, 3> copiedArr = arr;
auto copiedLambda = [copiedArr]() -> std::array<int, 3> {
return copiedArr;
};
// 使用返回的指针或副本
int* result = myLambda(arr);
std::array<int, 3> result2 = copiedLambda();
```
阅读全文