使用迭代器C++在行和列矩阵中上/下/左/右导航

Navigate up/down/left/right through rows and columns matrix with iterators C++

本文关键字:导航 C++ 迭代器      更新时间:2023-10-16

我正在尝试浏览std::set<std::set<char>> 2x2矩阵。通过向左/向右/上下移动0例如,我有一个矩阵:

a a O a
a a a a
a a a a
a a a a

我想做的是能够改变矩阵,使其具有以下特性:

a a a O
a a a a
a a a a
a a a a

或者这个:

a a a a
a a O a
a a a a
a a a a

我想使用迭代器或更好的方法来实现这一点。在同一行上进行转换很容易,但我不知道如何从一行转换到另一行。

最简单的方法是存储0的坐标(可选以及实际容器,但在许多情况下这是多余的)。

因此,在将0向右移动时,只需++x(如果你还存储了实际的字符容器,你就知道旧的0在哪里,所以你把它改为背景符号,并在新坐标中放一个0)。

MoveRight()
{
    container[x][y] = 'a'; //optional
    ++x;
    container[x][y] = '0'; //optional
}

希望这有道理?