You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++嵌套for循环索引异常:无法访问目标元素问题排查

问题分析与修正

问题根源

你的循环条件错误,导致目标元素无法被正确遍历:

  • 当M=1(对应元素5所在的第二行)时,内层循环条件k < M - 1等价于k < 0,循环直接跳过,完全没访问该行元素;
  • 后续M=2和M=3时,内层循环的终止条件也限制了遍历次数,导致漏掉10、15这两个元素。

修正方案

将内层循环的条件从k < M - 1改为k < M(或等价的k <= M - 1),这样就能按期望遍历到所有目标元素:

#include <iostream>
#include <vector>
    
int main() {
  std::vector<std::vector<int>> matrix_val = {
    {1,2,3,4,50},
    {5,6,7,8,90},
    {9,10,11,12,130},
    {13,14,15,16,300}
  };
    
  for (int M = 1; M < 4; M++) {  
    for (int k = 0; k < M; k++) {  // 修改循环条件
      std::cout << " Matix_val is " << matrix_val[M][k] 
                << " Value of M " << M 
                << " Value of k " << k 
                << std::endl;
    }    
  }
}

修正后输出

运行修正后的代码,会依次输出:

Matix_val is 5 Value of M 1 Value of k 0
 Matix_val is 9 Value of M 2 Value of k 0
 Matix_val is 10 Value of M 2 Value of k 1
 Matix_val is 13 Value of M 3 Value of k 0
 Matix_val is 14 Value of M 3 Value of k 1
 Matix_val is 15 Value of M 3 Value of k 2

完全符合你期望访问的元素集合。

内容的提问来源于stack exchange,提问作者sarika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:55:16