我不确定是否可能,但我愿意听取建议。
我有一个c++函数。它对由用户定义为输入的数组进行一些计算,并生成两个输出值。让我们称其为“myfunction”,它看起来像这样:
void myfunction(double array1[18],double array[9],double array [2],double *output1, double *output2)
我想使此函数更通用,以便能够接受不同大小的数组。也就是说,我希望该函数的用户能够定义其他大小的数组输入。
例如,
void myfunction(double array1[81],double array[27],double array [3],double *output1, double *output2)
从数学上讲,“myfunction”能够计算出准确的输出,尽管数组大小不同。我不想复制“myfunction”,因为用户可以定义5种不同大小的数组作为输入。
有什么想法吗?谢谢您的帮助。
我有一个c++函数。它对由用户定义为输入的数组进行一些计算,并生成两个输出值。让我们称其为“myfunction”,它看起来像这样:
void myfunction(double array1[18],double array[9],double array [2],double *output1, double *output2)
我想使此函数更通用,以便能够接受不同大小的数组。也就是说,我希望该函数的用户能够定义其他大小的数组输入。
例如,
void myfunction(double array1[81],double array[27],double array [3],double *output1, double *output2)
从数学上讲,“myfunction”能够计算出准确的输出,尽管数组大小不同。我不想复制“myfunction”,因为用户可以定义5种不同大小的数组作为输入。
有什么想法吗?谢谢您的帮助。
std::vector
和std::array
。 - Khouri Giordanovoid myfunction(double array1[18],double array[9],double array [2],double *output1, double *output2)
-- 前三个参数不是数组。这个声明与下面的声明完全相同:void myfunction(double *array1, double *array, double *array, double *output1, double *output2);
。传递的数组会衰减为指针--在这种形式的声明中,所有的大小信息都会丢失。 - PaulMcKenziestd::vector
的引用(或者在你不打算修改它时使用const
引用)将具有大致相同的性能,并且允许您检查每个输入的.size()
以确定需要循环的内容。 - ShadowRangerstd::vector
。计划B(如果必须使用一维数组):只需不声明大小:void myfunction(double *array1,double *array2,double *array3,double *output1, double *output2)
。 - paulsm4