У меня есть код ниже, который генерирует 1D-вектор, содержащий одинаково разнесенные точки из [xmin, xmax]. Когда я вызываю функцию, он не возвращает вектор VX. Что я делаю не так?Возврат вектора в C++
double meshGen1d(double xmin, double xmax, int k)
{
int i;
int nV = k + 1;
boost::multi_array< double, 1 > VX(boost::extents[ nV - 1 ]);
//std::vector<double> VX(nV - 1);
std::cout<<" Setting up the 1D mesh "<<std::endl;
//Generate node coordinates
VX[0] = xmin;
for (i=0; i<nV; i++)
{
VX[ i ] = VX[ i - 1 ] + (xmax - xmin)/k;
}
return VX;
}
Если вы хотите вернуть вектор, вам необходимо изменить возвращаемый тип функции. Прямо сейчас у вас это как двойное. – NathanOliver
, который работал, я только что скопировал boost :: multi_array вместо двойного. –
Andrei