我想知道是否有一种简单的方法可以使用 COORD 结构访问二维数组的元素。例如:
COORD myCoord = {2,6};
TwoDiArray myArray;
myArray.at(myCoord) = 10;
我不知道如何正确地做到这一点。有什么建议么?
我想知道是否有一种简单的方法可以使用 COORD 结构访问二维数组的元素。例如:
COORD myCoord = {2,6};
TwoDiArray myArray;
myArray.at(myCoord) = 10;
我不知道如何正确地做到这一点。有什么建议么?
您只需要定义一个适当的功能at()
:
class TwoDiArray {
...
// assuming there is some 2-dimensional array representation arr
public:
int& at(COORD c) noexcept { return arr[c.x][c.y]; }
};
我假设您的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;