トップページ > プログラム > 2014年10月19日 > FiSSuAAU

書き込み順位&時間帯一覧

14 位/176 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000211000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part114

書き込みレス一覧

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
なんか馬鹿がわけのわからんころを

これだから、こいつらはスズメの学校でチーチーぱっぱのアホなんよ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。