vector创建每行的列数不相同的二维动态数组
时间: 2023-05-29 19:03:55 浏览: 184
在C++中,可以使用vector嵌套vector来创建每行的列数不相同的二维动态数组。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 创建一个每行列数不同的二维数组
vector<vector<int>> arr = {
{1},
{2, 3},
{4, 5, 6},
{7, 8, 9, 10}
};
// 输出数组元素
for (int i = 0; i < arr.size(); i++) {
for (int j = 0; j < arr[i].size(); j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
在上面的代码中,我们使用了嵌套vector来创建一个每行列数不同的二维数组,并使用两个for循环遍历输出数组元素。输出结果如下:
```
1
2 3
4 5 6
7 8 9 10
```
可以看到,我们成功创建了一个每行列数不同的二维动态数组。
相关问题
vector二维数组每行列数
vector二维数组可以使用vector<vector<int>>来表示,其中第一维表示行,第二维表示列。每行的列数可以不同,这也是vector二维数组的灵活性所在。可以通过以下方式获取每行的列数:
```
vector<vector<int>> arr = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
for (int i = 0; i < arr.size(); i++) {
int cols = arr[i].size();
cout << "Row " << i << " has " << cols << " columns" << endl;
}
```
输出结果为:
```
Row 0 has 3 columns
Row 1 has 2 columns
Row 2 has 4 columns
```
vector创建二维动态数组
以下是使用vector创建二维动态数组的示例代码:
```
#include <vector>
#include <iostream>
int main() {
int rows = 3;
int cols = 4;
std::vector<std::vector<int>> arr(rows, std::vector<int>(cols));
// 初始化数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 打印数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先定义了二维数组的行数和列数,然后使用vector创建了一个二维动态数组。创建方式是先定义一个vector,然后指定其元素类型为vector<int>,即每个元素是一个int类型的vector。接着使用vector的构造函数初始化数组的行数和列数。
然后我们使用两层for循环初始化数组的值,最后再使用两层for循环打印数组的值。注意,在使用vector创建二维数组时,不能像静态数组那样使用arr[i][j]的方式访问元素,而需要使用arr.at(i).at(j)的方式访问。