- C++相談室 part114
351 :デフォルトの名無しさん[]:2014/10/19(日) 16:48:58.34 ID:FiSSuAAU - 行列を動的な1次元配列で実装する場合、
C言語、C++は行主順(行列を行ベクトルの集まりとみて1行目、2行目・・・と並べていく) fortran は列主順(行列を列ベクトルの集まりとみて1列目、2列目・・・と並べていく) です。fortranのサブルーチンとインターフェースをとるためには列主順にしなければ ならないのですが、ここで困るのがoperator []です。 m行n列の行列Aを1次元配列で実装した時の先頭アドレスをpとすると 列主順では double* operator [](int j) { return p + m * j; } となりそうですが、これではAのi行j列の要素にアクセスするときは A[j][i]になってしまいます。()演算子のオーバーロードならこんな 問題は起きませんが、ポインタを返す[]演算子では列主順である限り、 A[i][j]とアクセスとできないでしょうか。テンプレートか何か使って A[i][j]をA[j][i]に変換できる方法ないですかねえ。それとも、何か 勘違いしてんのかなあ。
|
- C++相談室 part114
352 :デフォルトの名無しさん[]:2014/10/19(日) 16:55:02.77 ID:FiSSuAAU - ポインタを返す[]演算子では
↓ アドレスを返す[]演算子では A[i][j]とアクセスとできないでしょうか。 ↓ A[i][j]とアクセスできないでしょうか。
|
- C++相談室 part114
355 :デフォルトの名無しさん[]:2014/10/19(日) 17:42:05.00 ID:FiSSuAAU - >>353
ありがとう >>354 いいから、馬鹿は黙ってろ
|
- C++相談室 part114
358 :デフォルトの名無しさん[]:2014/10/19(日) 18:08:12.06 ID:FiSSuAAU - なんか馬鹿がわけのわからんころを
これだから、こいつらはスズメの学校でチーチーぱっぱのアホなんよ
|