c++如何将vector转换为数组

C++ how to convert vector to an array?

本文关键字:转换 数组 vector c++      更新时间:2023-10-16

有人能告诉我如何将向量转换为数组吗?我有一个函数,它返回一个双精度类型的向量,像这样

std::vector<double>  x_vec = LinspaceArray_DK2(0, 5.0, 0.01);
std::vector<double>  y_vec = Calculate_y_vec(x_vec);

然而,下面的GSL (GNU scientific lib)函数需要一个数组作为输入

gsl_spline_init (spline, x_array, y_array, x_vec.length);

这里,x_array, y_array是向量x_vec和y_vec对应的数组。

我在这里尝试了以下解决方案(如何在c++中转换向量到数组),建议这样转换:

std::vector<double> v;
double* a = &v[0];

但是,这种类型的转换对需要数组作为输入的gsl_spline_init没有帮助。

更新:

我试着这样打电话:

// Convert all vector to an array
double* x_input_Array = &x_input[0];
double* y_input_Array = &y_input[0];

然后调用:

gsl_spline_init (spline, *x_input_Array, *y_input_Array, iNoOfPtsIni);

我得到这个错误:错误C2664: 'gsl_spline_init':无法将参数2从'double'转换为'const double' []'

谢谢,DK

您不需要(也不应该)解引用-您调用的函数期望数组,并且您传递它们的第一个元素。使用

gsl_spline_init (spline, x_input_Array, y_input_Array, iNoOfPtsIni);