1

わかりました、電撃戦で多次元配列を宣言する方法を知っています。次のようにします。

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 ベクトルの内容を入力しています。しかし、寸法は変化し続けます。

4

0 に答える 0