c++ - 不同的结果取决于 C++ 中 for 循环的循环索引的位置

标签 c++ loops for-loop indexing

  size_t j = 1; size_t i = 1;

  for (i=1;i<=a;i++){
    for (j=1;j<=b;j++){
      board[i][j] = std::min( std::min(board[i - 1][j] + 1,board[i][j - 1] + 1),
                                          board[i - 1][j - 1] + (A[i - 1] == B[j - 1] ? 0 : 1) );
                                          //cout << board[i][j] << endl;
    }

  }
  cout << board[a][b] << endl;

所以我只是在学习 C++:如果你看上面的代码,i 和 j 被定义为两个 for 循环的第一个参数。因为我在此之前声明了 i 和 j,所以我相信我也可以这样做:

for (;i<=a;i++
  for (;j<=b;j++)

在我的整个代码中产生了错误的结果。但是,第一个工作正常。任何人都可以对此有所了解吗?提前致谢

我已经对此进行了搜索,并且知道索引变量范围的差异。

最佳答案

这是因为范围,基本上,在您的原始代码中,j 变量在第一个循环的每次迭代中重置为 1:for (j=1;.... )。但是,在您的代码的第二个版本中,没有重置。

关于c++ - 不同的结果取决于 C++ 中 for 循环的循环索引的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26388331/

相关文章:

html - Wordpress 博客循环,自动高度打破布局

performance - VBA 循环效率

c++ - 从循环中提升动态类型(也就是以 C++ 方式执行 Java)

c++ - x86-64 上检查指针范围是否跨越 N 字节对齐地址的最快方法?

python - 异常后如何重试?

Linux 庆典。 for循环和函数,用于添加数字

java - 二维多维数组是如何填充的?

C++实现扩展子接口(interface)的子类而不覆盖已经覆盖的方法

c++ - 为什么使用私有(private)动态数组时性能最差

python - Python中的JSON错误循环输出