vector<vector<int>>
时间: 2024-02-13 22:58:08 浏览: 98
vector<vector<int>>是C++中的二维向量(vector of vectors)的定义方式。它可以用来表示一个二维矩阵或者二维数组。
下面是一个演示例子:
```cpp
#include <iostream>
#include <vector>
int main() {
// 定义一个3行4列的二维向量
std::vector<std::vector<int>> matrix(3, std::vector<int>(4));
// 给二维向量赋值
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
matrix[i][j] = i * matrix[i].size() + j;
}
}
// 打印二维向量的值
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
输出结果为:
```
0 1 2 3
4 5 6 7
8 9 10 11
```
相关问题
vector<vector<int>>
vector< vector<int> > 是一个容器,其中嵌套了另一个容器。外层容器的元素类型是 vector<int>,内层容器的元素类型是 int。你可以通过以下几个步骤来使用 vector< vector<int> >:
1. 定义和长度:
- 正确的定义方式:vector< vector<int> > A;(在尖括号前加上空格)
- 获取 vector< vector<int> > A 中的外层容器元素个数:int len = A.size();
- 获取 vector< vector<int> > A 中第 i 个外层容器的长度:int len = A[i].size();
2. 访问某个元素:
- 在使用 vector 容器之前,需要加上 <vector> 头文件:#include <vector>
- vector 属于 std 命名空间的内容,因此需要通过命名限定:using std::vector;(也可以直接使用全局的命名空间方式:using namespace std;)
- 使用 vector 的成员函数来访问元素...
例如,如果想定义 A = [[0,1,2],[3,4,5]],可以按如下步骤:
```cpp
vector< vector<int> > A; // 大容器
// A.push_back 里必须是 vector
vector<int> B; // 小容器
B.push_back(0);
B.push_back(1);
B.push_back(2);
A.push_back(B); // 小容器放入大容器
B.clear(); // 清空小容器元素
B.push_back(3);
B.push_back(4);
B.push_back(5);
A.push_back(B);
```
范例中还提供了一个案例,可以参考如下代码实现键盘输入 n 维矩阵,转化为二维向量:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector< vector<int> > v;
vector<int> temp;
int n, i, j, num;
cout << "input the dimension:";
cin >> n;
cout << "请输入" << n << "*" << n << "的矩阵" << endl;
// 输入元素
for (i = 0; i < n; i++) {
temp.clear(); // 清空 temp 内元素
for (j = 0; j < n; j++) {
cin >> num;
temp.push_back(num);
}
v.push_back(temp);
}
cout << "<----- 遍历输出所有元素 ----->" << endl;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
cout << v[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
map<int,vector<vector<int>>>
在C++中,可以使用`map<int,vector<vector<int>>>`来定义一个映射,其中键是整数类型,值是一个二维向量。下面是一个示例代码来演示如何初始化和访问`map<int,vector<vector<int>>>`:
```cpp
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
map<int, vector<vector<int>>> myMap;
// 初始化map
vector<vector<int>> vec1 = {{1, 2, 3}, {4, 5, 6}};
vector<vector<int>> vec2 = {{7, 8, 9}, {10, 11, 12}};
myMap[0] = vec1;
myMap[1] = vec2;
// 访问map中的值
for (auto& entry : myMap) {
int key = entry.first;
vector<vector<int>>& value = entry.second;
cout << "Key: " << key << endl;
for (auto& innerVec : value) {
for (auto& num : innerVec) {
cout << num << " ";
}
cout << endl;
}
}
return 0;
}
```
这段代码演示了如何初始化一个`map<int,vector<vector<int>>>`并访问其中的值。首先,我们定义了两个二维向量`vec1`和`vec2`,然后将它们作为值插入到`myMap`中,键分别为0和1。接下来,我们使用循环遍历`myMap`,并打印出每个键和对应的二维向量的值。
阅读全文