【发布时间】: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]中ints 的数量(其中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().