matrix.size() == 0 和 matrix[0].size() == 0 有什么区别
what is different between matrix.size() == 0 and matrix[0].size() == 0
对于向量>矩阵。matrix.size() == 0 和 matrix[0].size() == 0 之间有什么区别?
bool searchMatrix(vector<vector<int> > &matrix, int target) {
int n = matrix.size();
if (n == 0) {
return false;
}
int m = matrix[0].size();
if (m == 0) {
return false;
}
matrix.size() 返回矩阵中有多少个 int 向量;matrix[0].size() 返回向量矩阵 [0] 中有多少 int
matrix
是一个vector<vector<int> >
,或向量的向量。如果它是空的,则其中没有向量。
matrix[0]
是matrix
内的第一个向量。这是一个<vector<int>
.如果存在,matrix
并不是真正的空,因为它包含一个元素。但如果它是空的,则matrix
内部没有有用的数据。
- 矩阵大小() = 矩阵向量的大小
- 矩阵[0].size() = 矩阵向量的第一个元素的大小。假设矩阵为空,那么这将为您提供分割错误或未定义的行为。
此代码使用向量向量模拟矩阵。它们将两个向量用于列数和行数。可以使用这样的向量,但 IMO 不是一个好主意,因为没有什么能阻止您在内部拥有不同大小的向量。想象:
vector<vector<int>> matrix;
vector<int> row;
row.push_back(1);
matrix.push_back(row);
row.push_back(2);
row.push_back(3);
matrix.push_back(row);
cout << "matrix.size() = " << matrix.size() << endl;
cout << "matrix[0].size() = " << matrix[0].size() << endl;
cout << "matrix[1].size() = " << matrix[1].size() << endl;
cout << "matrix[2].size() = " << matrix[2].size() << endl;
这给出了:
matrix.size() = 2
matrix[0].size() = 1
matrix[1].size() = 3
matrix[2].size() = 25802
一些评论:
- 如您所见;矩阵包含两个向量(因为我们使用了两次
matrix.push_back()
- matrix[0] 包含一个元素,因为我们在将这个子向量放入矩阵之前只做了一次
row.push_back(1);
。 - 没有什么能强加 matrix[0].size() 和 matrix[1].size() 具有相同的维度
- 访问从未填充的 matrix[2].size() 会给出未定义的行为
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 大于65535的C++数组[size]引发不一致的溢出
- 为什么(-1)%vector::size()总是返回0
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- vector.size() 在比较中意外工作
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- 返回 str vs. str.substr(0,str.size()) 在 leetcode 中给了我不同的输出
- 为什么 GCC 不能假设 std::vector::size 在这个循环中不会改变?
- 为什么"(!v.empty())"比"(v.size() >0)"好?
- Eigen - matrix.transpose 会创建矩阵的副本吗?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- std::string.size() 未知行为
- 为什么gmp会在这里与"invalid next size"重新定位一起崩溃?
- 为什么我会"Invalid read of size 8"?(瓦尔格林德)
- matrix.size() 和 matrix[0].size() 有什么区别?
- matrix.size() == 0 和 matrix[0].size() == 0 有什么区别
- 断言失败 <0 <= i && i < <int>vv.size<>> 在未知函数中,文件 src\matrix.cpp,第 912 行