vector<vector<int>> 怎样知道二维数组的行数和列数
时间: 2024-09-18 12:01:06 浏览: 24
`vector<vector<int>>` 表示的是一个动态大小的二维整数向量,也称为动态数组或矩阵。要获取这个二维数组(矩阵)的行数和列数,你可以通过迭代每个内部的 `vector<int>` 来计数。
以下是一个简单的步骤:
1. 初始化两个变量,如 `rows` 和 `cols`,分别用于存储行数和列数,初始值设为0。
2. 使用嵌套循环遍历矩阵中的元素。外层循环遍历每一行,内层循环遍历每一列。
3. 对于每行,访问完所有列后,将 `rows` 自增 1。
4. 对于每个列,由于我们是在处理矩阵中的一个 `vector`,所以列数即为每个 `vector` 的长度,因此不需要额外的循环,直接累加到 `cols` 即可。
如果你想要一个更通用的方法,可以使用 C++ 的标准库函数,例如 `<vector>` 中的 `size()` 函数,但需要稍微复杂一些,因为需要分别计算内、外层 `vector` 的尺寸。下面是一个代码片段演示如何做到这一点:
```cpp
std::vector<std::vector<int>> matrix;
// ...填充矩阵...
int rows = matrix.size(); // 获取行数
if (rows > 0) {
int cols = matrix[0].size(); // 获取列数,假设所有行的列数都一样
// ...现在你知道行数和列数了...
}
```
相关问题
vector<pair<int,int>> 是二维数组还是一维数组
vector<pair<int,int>> 是一维数组,它是一个 vector 容器,其中每个元素都是一个 pair<int,int> 类型的对象。每个 pair 对象表示一个二元组,相当于一个长度为 2 的一维数组。因此,vector<pair<int,int>> 可以看作一个长度可变的一维数组,其中每个元素都是长度为 2 的一维数组。
vector<vector<int>>二维数组pushback数据
当我们使用`vector<vector<int>>`来表示二维数组时,可以通过`push_back`函数向其中添加数据。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
// 创建一个空的二维数组
std::vector<std::vector<int>> matrix;
// 创建一维数组并添加数据
std::vector<int> row1 = {1, 2, 3};
std::vector<int> row2 = {4, 5, 6};
// 将一维数组添加到二维数组中
matrix.push_back(row1);
matrix.push_back(row2);
// 打印二维数组
for (const auto& row : matrix) {
for (const auto& element : row) {
std::cout << element << " ";
}
std::cout << std::endl;
}
return 0;
}
```
运行以上代码,输出结果为:
```
1 2 3
4 5 6
```
在这个示例中,我们首先创建了一个空的二维数组`matrix`。然后,我们创建了两个一维数组`row1`和`row2`,并分别给它们赋值。接下来,我们使用`push_back`函数将这两个一维数组添加到二维数组`matrix`中。最后,我们使用嵌套的循环打印出二维数组的内容。