在 java 中,可以使用return new int[] {1,2,3}. 在 C++ 中,我习惯先创建一个数组(比如 temp),然后将1,2,3其存储在其中,然后使用return temp. 我如何在{1,2,3}不使用 temp 的情况下返回。我可以在没有临时变量的情况下以类似的方式返回向量或映射(而不是数组)以将它们存储在 C++ 中吗?如果是,我该怎么做?
你不能真正返回一个普通的数组。普通数组衰减为指针(指向它们的第一个元素),而您返回的是这样一个指针。这是行不通的,因为数组的生命周期在函数结束时结束,指针将立即失效。
但是你可以很容易地像想要一样返回一个std::array或std::vector对象:
std::vector<int> foo()
{
return { 1, 2, 3 };
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |