当前位置:优学网  >  在线题库

使用for循环的一个用例迭代二维向量会导致分割错误

发表时间:2022-07-27 00:32:42 阅读:155

我需要编写一个简单的方法来计算矩阵数据中的最高元素(在本例中使用2D向量实现).在该方法中,最初,我使用for循环的一种形式(最常见的形式)访问2D向量中的每个元素,该形式给出了一个"分割错误".不幸的是,我找不到一个好的理由让它发生.最终,我以不同的方式使用for循环解决了这个问题.然而,我仍然想知道在最初的美国for循环中"分段错误"的原因.我相信这也是一种正确的方法来迭代二维向量.有人能解释一下原因吗?提前感谢!

初始(给出错误):

class customers {
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int richest_customer_wealth = 0;
        int sum;
        for(int i=0;i<accounts.size();++i){
            sum = 0;
            for(int j=0;i<accounts[i].size();++j){
                sum += accounts[i][j];
            }
            if(sum > richest_customer_wealth)
                    richest_customer_wealth = sum;
        }
        return richest_customer_wealth;
    }
};

修改for循环后:

class customers{
public:
    int maximumWealth(vector<vector<int>>& accounts) {
        int richest_customer_wealth = 0;
        int sum;
        for(vector<int> row: accounts){
            sum = 0;
            for(int val: row){
                sum += val;
            }
            if(sum > richest_customer_wealth)
                    richest_customer_wealth = sum;
        }
        return richest_customer_wealth;
    }
};
🎖️ 优质答案
  • 我相信这可能是因为在你的内心深处

    for(int j=0;i<accounts[i].size();++j)
    

    应该是什么时候

    for(int j=0;j<accounts[i].size();++j){
    
  • 相关问题