многомерные массивы blitz ++, объявив их размеры позже

Хорошо, я знаю способ объявить многомерный массив в блиц. Вы бы сделали это так:

blitz::Array<double, 3> blitzArray( 3, 4, 5 );

и получить доступ к таким элементам:

blitzArray(0,0,0) = 1.0001;

Но что, если я хотел объявить массив без указания размеров в начале.
Видите ли, размеры всегда меняются. Как первое измерение начиналось бы как 3, затем превращалось в 8, а затем в 2 и т. Д. То же самое относится и к другим измерениям.
Теперь у меня есть петли для этих размеров. Мой код анализирует файл и может указывать размеры.
Так что я могу сделать что-то вроде:

blitz::Array<double, 3> blitzArray;    //declaration
//later in the program after doing stuff
f=0
for(i=0;i<n;i++){
for(j=0;j<m;++j){
for(k=0;k<o;++k){       //n,m,o are decided by some other constraints, doesn't matter
blitzArray(i,j,k)=foo[f++]; //foo is a vector<double>

поэтому здесь я делаю массив массивов массивов и добавляю в каждую ячейку массива то, что находится в векторе foo. Но размеры постоянно меняются.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …