2017-12-13 41 views
0

COORD 구조체를 사용하여 2 차원 배열의 요소에 쉽게 액세스 할 수 있는지 궁금합니다. 예를 들어 :COORD 구조체를 사용하는 C++ 액세스 배열 요소?

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

내가 제대로이 작업을 수행하는 방법을 모르겠어요. 어떤 제안? 이차원 같은 -도 -

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의 대답 참조).

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; 
을 당신은 배열 참조와 COORD 객체를 복용 액세서리를 구현할 수
0

나는 당신의 TwoDArray 유형을 변경할 수없는 종류이고 액세스하는 가정을 만들고 있어요 :