Я использую массив boost mutli для 2D следующим образом:
typedef boost::multi_array<double, 2> array_type;
typedef array_type::index index;
// initialize array
array_type U(boost::extents[N][3]);
for(index i = 0; i != N; ++i) {
for(index j = 0; j != 3; ++j){
U[i][j] = 0;
}
}
double * pU = U.data();
double (*arrayU)[3] = (double (*)[3])pU;
Сейчас пытаюсь реализовать но для 3D пока написал следующее,
typedef boost::multi_array<double, 3> array_type;
typedef array_type::index index;
// initialize array
array_type U(boost::extents[M][N][4]);
for(index i = 0; i != M; ++i) {
for(index j = 0; j != N; ++j){
for(index k = 0; k != 4; ++k){
U[i][j][k] = 0;
}
}
}
Но следующая часть все еще сбивает меня с толку, не могли бы вы рассказать мне, как это сделать, и немного объяснить?
double * pU = U.data();
double (*arrayU)[3] = (double (*)[3])pU;
Спасибо!