我想知道是否有一种使用COORD结构访问二维数组元素的简单方法。 例如:
COORD myCoord = {2,6};
TwoDiArray myArray;
myArray.at(myCoord) = 10;
我不知道如何正确地做到这一点。有什么建议吗?
答案 0 :(得分:0)
您只需要定义一个正确的函数at()
:
class TwoDiArray {
...
// assuming there is some 2-dimensional array representation arr
public:
int& at(COORD c) noexcept { return arr[c.x][c.y]; }
};
答案 1 :(得分:0)
我假设您的TwoDArray
类型是一种您无法更改的类型,并且可以访问 - 类似于二维数组,例如,二维内置数组的别名(另见@ 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;