[英]C++ how to convert vector to an array?
有人可以告訴我如何將向量轉換為數組嗎? 我有一個函數可以返回典型的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 science 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.