C ++如何将向量转换为数组?

时间:2014-08-15 12:02:47

标签: c++ arrays vector

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

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的数组。

我在这里尝试了以下解决方案(How to convert vector to array in 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

1 个答案:

答案 0 :(得分:3)

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

gsl_spline_init (spline, x_input_Array, y_input_Array, iNoOfPtsIni);