vector<vector<int>>& graph在C++代码中要怎么赋值
时间: 2024-09-29 09:05:18 浏览: 62
在C++中,`vector<vector<int>> graph`通常代表二维动态数组或图的数据结构。你可以通过以下方式来初始化并赋值:
1. **使用花括号直接创建**:
```cpp
// 初始化为一个空的二维向量
vector<vector<int>> graph;
// 或者一次性添加元素(这里是个空的子向量)
graph.push_back(vector<int>()); // 添加一个空的行
// 如果你想添加一个有具体值的子向量
vector<int> row = {1, 2, 3};
graph.push_back(row); // 在最后一行添加元素 [1, 2, 3]
// 或者更复杂的情况,如从文件或其他源读取数据填充
ifstream file("data.txt"); // 假设文件中有二维数据
for (int i = 0; /*条件*/; i++) {
graph.push_back(vector<int>(/*文件读取的行数*/)); // 根据文件读取添加相应行
}
```
2. **使用`resize()`动态扩展**:
```cpp
vector<vector<int>> graph;
// 先预估大小
graph.resize(3, vector<int>(3));
// 然后逐行填充数据
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
cin >> graph[i][j];
}
}
// 也可以只初始化部分行
graph.resize(2);
graph[0].resize(2); // 初始化第一行有2个元素
graph[0][0] = 1;
graph[0][1] = 2;
graph[1] = vector<int>{3, 4}; // 初始化第二行为 [3, 4]
```
记住,每次调用`push_back()`都会在向量的末尾添加一个新的子向量,而`resize()`则是在指定位置分配新的内存。
阅读全文