у меня есть вектор 3d stl,
vector<vector<vector<double> > > mdata;
У меня также есть функция
myfun(const double ya[]);
точнее, это функция из научной библиотеки GNU,
gsl_spline_init(gsl_spline * spline, const double xa[], const double ya[], size_t size);
но это не связано с моей проблемой.
так что теперь я хочу передать «последнее» измерение данных в myfun. Я пытался это:
for (int s = 0; s < msize; s++) {
accelerators = new gsl_interp_accel*[msize];
splines = new gsl_spline*[msize];
for (int i = 0; i < msize; i++) {
accelerators[i] = gsl_interp_accel_alloc();
splines[i] = gsl_spline_alloc(gsl_interp_cspline_periodic, msize+1);
gsl_spline_init(splines[i], &(*mgrid.begin()), &(*mdata[s][i].begin()), msize+1);
}
}
Но компилятор (g ++, 64bit, Ubuntu) жалуется:
В функции-члене
'std::vector<std::vector<std::vector<double,
std::allocator<double> >,
std::allocator<std::vector<double,
std::allocator<double> > > >,
std::allocator<std::vector<std::vector<double,
std::allocator<double> >,
std::allocator<std::vector<double,
std::allocator<double> > > > > >
SimpleAmfCalculator::interp_m(int)
:
Calculator.cpp: 100: ошибка: невозможно
преобразовать 101 std::vector<double,
std::allocator<double> >*
’в‘ const
double*
’для аргумента‘ 3 ’в‘ int
gsl_spline_init(gsl_spline*, const
double*, const double*, size_t)
’make:
*** [Calculator.o] Ошибка 1
Любая помощь очень ценится!