C ++中'grid.size()'和'grid [0].size()'有啥区别

Posted

技术标签:

【中文标题】C ++中\'grid.size()\'和\'grid [0].size()\'有啥区别【英文标题】: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(). 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于C ++中'grid.size()'和'grid [0].size()'有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

同时从 grid1(account) 和 grid2(group) 中选择相似的记录

MVCContrib Grid - 如何使用 ajax 添加和删除行?

[agc004c]and grid

训练时间和在 libsvm 中使用 gamma 和 C 过拟合

请问一下啥是oracle 12c grid?

数据结构与算法之深入解析“网格游戏”的求解思路和算法示例