首页 > 解决方案 > 在矩阵对象 C++ 上移动时出现索引错误

问题描述

我正在尝试通过迭代将单词拟合到矩阵中,但是当我输入 row = 0 时,该函数会尝试在 while 循环中检查 arbit_mat[r][c - 1] == '-'并给出错误。我该如何解决这个问题?

if (rotation == "CW")
    {
        switch (direction[0]) {
        case 'l':
            // left situation
            
            while ((c - 1 >= 0) & (arbit_mat[r][c - 1] == '-')) {
                arbit_mat[r][c - 1] = word[idx];
                idx++;
                c--;

                printMatrix(arbit_mat);

                if (idx == word.length())
                {
                    return arbit_mat;
                }
                if (c == 0)
                {
                    break;
                }
                
            }

我在循环中编写了一个 if 语句来解决问题,但是当行以 0 开头时,它会给出以下错误:

向量下标超出范围!

感谢您的贡献。

标签: c++loopsmatrixwhile-loopswitch-statement

解决方案


你要

while ((c - 1 >= 0) && (arbit_mat[r][c - 1] == '-')) {

& 是按位与运算符

&& 是逻辑与运算符


推荐阅读