【发布时间】:2014-10-20 13:44:43
【问题描述】:
我有一个向量数组(整数),我想将它作为参考传递给成员函数,以便可以对其进行修改。 (它实际上是我的函数的输出,但我已经有一个返回值。)
我写了这样的东西
int Dag::dag2array(vector<int> (&aVectors)[4])
{
//some stuff
//calling another function tree2array(aVectors)
//passing the same array as reference
}
它编译并运行,尽管它看起来不像我想要的那样。
在一个或多或少相反的问题(Passing array of vectors as a function parameter (values will not change))中,答案说可以在没有& 的情况下修改数组,并且它不会复制,但它就像一个指针。
- 为什么像
int这样的变量需要&来避免 复制并能够“即时”修改原始变量的值而不是数组? - 我是否应该使用
&?
【问题讨论】:
-
你的问题不清楚。与您想要的相反,代码实际上做了什么?
-
向量数组?那只是邪恶的。使用 C++ 或 C,不要同时使用!
-
试试
vector<vector<int>>& -
@NeilKirk: 使用 vector
>& 可以更改第一个向量的大小,在我的情况下它是固定的,因此 array , 4>& 会产生更多感觉。我只是想了解这一切是如何运作的! -
@SebastianRedl:我的代码不会更改作为参数 (aVectors) 给出的数组。
标签: c++ arrays vector reference