vector容器里嵌套int数组
时间: 2024-10-02 16:04:17 浏览: 34
在C++的`std::vector`容器中,如果你想要存放嵌套的整数数组(即每个元素本身就是一个长度为3的数组),可以像之前提到的那样直接使用`std::vector<std::array<int, 3>>`。这里的`std::array<int, 3>`就是内部的嵌套结构,每个元素都是一个包含三个元素的固定大小数组。
例如:
```cpp
std::vector<std::array<int, 3>> myVector; // 创建一个空的vector,用于存储3x3的int数组
// 存储一个元素,元素自身是个长度为3的数组
std::array<int, 3> innerArray = {1, 2, 3};
myVector.push_back(innerArray);
// 访问嵌套数组
for (const auto& array : myVector) {
for (int i : array) {
std::cout << i << " ";
}
std::cout << "\n";
}
```
在这个例子中,`myVector`的每个元素都是一个3x3的整数矩阵。
相关问题
C++遍历vector<vector<int>>数组
在C++中,遍历二维向量`std::vector<std::vector<int>>`通常有两种方式:嵌套循环或者利用范围for循环。
1. **嵌套循环**:
```cpp
std::vector<std::vector<int>> matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
// 使用两个嵌套循环遍历
for (int i = 0; i < matrix.size(); ++i) {
for (int j = 0; j < matrix[i].size(); ++j) {
std::cout << matrix[i][j] << " ";
}
std::cout << "\n"; // 每行结束后换行
}
```
2. **范围for循环**:
从C++11开始,你可以使用范围for循环,但这只适用于支持迭代器的容器。对于二维向量,需要先获取内部向量的起始和结束迭代器:
```cpp
for (const auto& row : matrix) {
for (int element : row) {
std::cout << element << " ";
}
std::cout << "\n";
}
```
这里假设`row`是`matrix`中的每个元素,即一个一维向量。
vector容器二维数组
vector容器的二维数组可以通过使用嵌套的vector来实现。每个元素都是一个vector<int>类型的向量。这样可以实现一个灵活大小的二维数组。
例如,如果我们声明一个名为vv的二维向量,可以使用以下方式创建一个具有n个元素的二维向量:
vector<vector<int>> vv(n);
其中,每个vv[i](0 <= i < n)都是一个vector<int>类型的向量,表示第i行的元素。
另外,我们也可以在创建二维向量时指定其初始大小。例如,如果我们想要创建一个10行5列的二维向量,可以使用以下方式:
vector<vector<int>> b(10, vector<int>(5));
其中,b是一个具有10个元素的向量,每个元素都是一个具有5个元素的向量。这样就创建了一个10行5列的二维向量。
总结起来,vector容器的二维数组可以通过嵌套的vector实现,每个元素都是一个vector<int>类型的向量。使用不同的初始化方式,可以创建不同大小的二维向量。
阅读全文