ゼロベースの位置(列x、行y)の2D配列の要素への定数参照を返す演算子()をどのようにオーバーライドできますか? 配列データをT *バッファに格納しました。定数参照を返す演算子
const T & operator() (int x, int y) const {}
ゼロベースの位置(列x、行y)の2D配列の要素への定数参照を返す演算子()をどのようにオーバーライドできますか? 配列データをT *バッファに格納しました。定数参照を返す演算子
const T & operator() (int x, int y) const {}
return T[x + y * columns]
はcolumns
は「マトリックス」の列数である通常の方法、次のとおりです。 は、私は私のメソッドの宣言は次のようになりますだと思います。 return T[x * rows + y]
が代わりで、rows
は「マトリックス」の行数です。列の数を増やすか、列の数を増やして、行列を単純にサイズ変更可能にするかどうかに応じて、いずれかのスキームを選択します。
この関数は、最初に渡された行パラメータで作成されたものです。あなたの方法は特有ですか?
あなたはにできるようにしたい場合は、参照を通じて行列の要素を設定し、その後、過負荷あまりに
T & operator() (int x, int y) {/*same function body*/}
を提供しています。最後に、size_t
をパラメータとして使用するか、unsigned
タイプtypedef
をクラスに追加することを検討してください。
ご協力ありがとうございます –
'return buffer [x * row_len + y];'、多分? – StoryTeller