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];
;
【问题讨论】:
仅供参考 -- 如果grid
或 grid[0]
为空,则 return
值会调用未定义的行为。
你知道grid[0]
是什么意思吗?你知道size()
-function 是做什么的吗?
grid.size()
返回grid
包含的vector<int>
s 的数量。 grid[0].size()
返回grid[0]
中int
s 的数量(其中grid[0]
是grid
中的第一个vector<int>
)。如果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 添加和删除行?