2017-12-13 15 views
0

COORD構造体を使用して2次元配列の要素にアクセスする簡単な方法があるのだろうかと思っていました。 例:COORD構造体を使用するC++アクセス配列要素?

COORD myCoord = {2,6}; 
TwoDiArray myArray; 
myArray.at(myCoord) = 10; 

これを正しく行う方法はわかりません。助言がありますか? 2次元のような - も -

class TwoDiArray { 
    ... 
    // assuming there is some 2-dimensional array representation arr 
    public: 
     int& at(COORD c) noexcept { return arr[c.x][c.y]; } 
}; 

答えて

0

は、あなただけの適切な機能at()を定義する必要が配列、例えば2次元組み込み配列のエイリアス(そうでなければ@Jodocusの答えを見てください)。あなたは、配列参照とCOORDオブジェクトを取ってアクセサリーを実現することができます。

template <typename Array2D> 
auto at(Array2D&& array, COORD c) -> decltype(array[c.x][c.y]) { 
    return array[c.x][c.y]; 
} 

(私はCOORDメンバーの名前がわからない) あなたはこのような関数を使用したい:

at(myArray, myCoord) = 10; 
0

私はあなたのTwoDArrayタイプが変更できないタイプであり、アクセスされた仮定を作ってるんだ:

関連する問題