【发布时间】:2021-12-06 20:15:37
【问题描述】:
我正在尝试在 C++ 中为一个具有 8x8 大小的二维数组作为其主要数据成员的类构建一个迭代器类。我想逐列迭代二维数组。
我试图从向量迭代器类的编写方式来考虑这一点。
我应该如何创建这个 Iterator 类? 构造函数是否需要接受双指针 (**obj) ?假设我这样做了,我将如何在为双指针重载 ++ 运算符时执行增量?
这就是我所拥有的
class Iterator
{
public:
Iterator(Board **obj)
{
ptr = obj;
}
Iterator& operator++()
{
ptr++;
}
private:
Board **ptr;
};
【问题讨论】:
-
像地狱一样作弊。 C++ 非常支持行优先顺序,因此如果要以列优先顺序主要访问数据,请将数据旋转 90 度,以便交换行和列,并提供一个索引运算符,以用户预期的顺序呈现数据他们很少需要用正确的坐标来显示它。
标签: c++ arrays pointers iterator