c++ - 尝试将字符串的元素与循环和索引进行比较,但索引不会递增

标签 c++ string

我正在尝试为 Euler Project 制作一个 Su Doku 求解器。我在比较字符串元素时遇到问题。我的索引为 k 的第二个循环只出现一次,而不是九次。如果我用 if 语句删除代码,它会很好地循环。有人知道为什么吗?关于尝试访问我的字符串的一些事情使它停止......

puzzle 是一个 vector ,reference_string 是一个字符串 ="123456789"

for (int i = 0; i != 9; i++){
    cout << "loop 1" << endl;
    for (int k = 0; k != 9; k++) {

        if (reference_string[i] == puzzle[row_index][k] || 
            reference_string[k] == puzzle[col_index][k] || 
             reference_string[i] == puzzle[box_index][k] ){
            possible_answers.push_back(0);
        }

        else if ( k = 8 ){
            possible_answers.push_back(1);
        }
    }
}

最佳答案

您需要将 k = 8 更改为 k == 8,或者更安全的 8 == k。您不是在执行比较,而是在执行更改循环计数器的赋值,以便在一次迭代后满足循环条件。

关于c++ - 尝试将字符串的元素与循环和索引进行比较,但索引不会递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358226/

相关文章:

c++ - 如何证明 -> 当 int* pMember = &(pSomeType->SomeIntMember) 时不用于推导;

javascript - 如何在javascript中添加字符串数值?

c++ - 如何一次从字符串中删除一个字符?

c - 如何用C语言从字符串中按数字分隔单词

c# - 如何根据替换字符将一个字符串的值替换为另一个字符串的值?

c++ - 使用 wxWebViewHandler 注册一个协议(protocol)

c++ - PugiXML 没有错误的空文档

string - Delphi:字符串网格的自动滚动

c++ - 如何刷新Directshow音频渲染器缓冲区?

c++ - 是否可以让 multi_index 容器使用连续内存?