我有一个函数,我想返回多个数组。我知道在c ++中不会返回数组,而是返回指向数组的指针。例如:
int* function(double array[])
但是,如果我需要返回多个数组(指向数组的多个指针?像2-10这样说),该怎么办?我想到了一种方法。一种方法是通过引用将数组传递给void函数:
void function(int a[], int b[], double c[])
但是,然后我们可能会传递很多数组作为输入。我可以将所有输入数组打包到一个类中,通过引用传递该类,但这似乎是不必要的结构。什么是正确的方法?谢谢
您可以使用std::vector
s代替数组:
void function(vector<int> &a, vector<int> &b, vector<double> &c)
函数调用者只需制作三个向量并将它们传递给:
vector<int> a, b;
vector<double> c;
function(a, b, c);
并且该函数可以按其喜欢的任何方式编辑向量(例如a.resize(10); a[0] = ...
),因为该函数使用的向量与调用者传入的向量相同。通过这种方式,该函数可以通过更改传入的向量来“返回”多个向量由呼叫者。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句