【问题标题】:what is the difference between 'grid.size()' and 'grid[0].size()' in C++C ++中'grid.size()'和'grid [0].size()'有什么区别
【发布时间】:2020-10-22 04:30:54
【问题描述】:

我对 C++ 2D 数组有疑问。下面代码中C++中的grid.size()grid[0].size()有什么区别?

public:
int minPathSum(vector<vector<int>>& grid) {
    for(int i = 0; i < grid.size(); i++)
        for(int j = 0; j < grid[0].size(); j++) {
            if(i == 0 && j == 0) continue;
            int tp = 1e9;
            if(i > 0) tp = min(tp, grid[i-1][j]);
            if(j > 0) tp = min(tp, grid[i][j-1]);
            grid[i][j] += tp;
        }
    return grid[grid.size()-1][grid[0].size()-1];
};

【问题讨论】:

  • 仅供参考 -- 如果 gridgrid[0] 为空,则 return 值会调用未定义的行为。
  • 你知道grid[0]是什么意思吗?你知道size()-function 是做什么的吗?
  • grid.size() 返回grid 包含的vector&lt;int&gt;s 的数量。 grid[0].size() 返回grid[0]ints 的数量(其中grid[0]grid 中的第一个vector&lt;int&gt;)。如果grid.size() 为零,则grid[0] 不存在,因此评估grid[0].size() 将给出未定义的行为。
  • 如果grid.size()grid[0].size() 为零,return grid[grid.size()-1][grid[0].size()-1] 将给出未定义的行为。
  • 数学上,grid.size() - grid[0].size().

标签: c++ arrays matrix grid 2d


【解决方案1】:

grid[0] 返回此二维vector 的第一行,因此grid[0].size() 返回该矩阵第一行的大小,grid.size() 返回矩阵中的行数。

【讨论】:

    【解决方案2】:

    grid.size() 是外向量的大小。

    grid[0].size() 是外向量的第一个内向量的大小。

    【讨论】:

      【解决方案3】:

      grid.size() 是网格的行数(外向量大小)。

      grid[i].size() 是网格第 i 行的元素数(内向量大小)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-04
        • 2021-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 2016-03-23
        • 2021-06-16
        相关资源
        最近更新 更多