5.2 2次元配列

2次元配列も定義できるようだが、 こちらはカギ括弧 [ ] は使えず、 丸括弧 ( ) を使う必要があるみたい。

2次元配列はこんなふうに
real[int,int] a(2,2);
a(1,1)=1; a(1,2)=2;
a(2,1)=3; a(2,2)=4;

2次元配列の例 (丸い括弧を使う)

real[int,int] a(3,2);
a(0,0)=1; a(0,1)=2;
a(1,0)=3; a(1,1)=4;
a(2,0)=5; a(2,1)=6;
cout << "a.n=" << a.n << ", a.m=" << a.m << endl; // 3と2になる。
for (int i=0; i < a.n; i++) {
  for (int j=0; j < a.m; j++)
    cout << setw(4) << a(i,j) << " ";
  cout << endl;
}
cout << "output by \"cout<<a<<endl;\"" << endl;
cout << a << endl;
2次元配列の例 (丸い括弧を使う)

$ FreeFem++ foo.edp
-- FreeFem++ v4.700001 (Jeu  5 nov 2020 11:02:28 CET - git v4.7-1)
 Load: lg_fem lg_mesh lg_mesh3 eigenvalue
    1 : real[int,int] a(3,2);
    2 : a(0,0)=1; a(0,1)=2;
    3 : a(1,0)=3; a(1,1)=4;
    4 : a(2,0)=5; a(2,1)=6;
    5 : cout << "a.n=" << a.n << ", a.m=" << a.m << endl; // 3と2になる。
    6 : for (int i=0; i < a.n; i++) {
    7 :   for (int j=0; j < a.m; j++)
    8 :     cout << setw(4) << a(i,j) << " ";
    9 :   cout << endl;
   10 : }
   11 : cout << "output by \"cout<<a<<endl;\"" << endl;
   12 : cout << a << endl;
   13 :  sizestack + 1024 =1168  ( 144 )

a.n=3, a.m=2
   1    2
   3    4
   5    6
output by "cout<<a<<endl;"
3 2
	   1   2
	   3   4
	   5   6

times: compile 0.01818s, execution 0.000271s,  mpirank:0
 CodeAlloc : nb ptr  3611,  size :458584 mpirank: 0
Ok: Normal End
$



桂田 祐史