有向图c++vector
时间: 2023-08-19 16:14:49 浏览: 54
引用\[1\]中的代码演示了如何使用push_back()函数在vector容器的尾部添加元素。引用\[2\]中的代码演示了如何使用emplace()函数在vector容器的指定位置插入元素。引用\[3\]中的代码演示了如何使用emplace_back()函数在vector容器的尾部添加元素。
对于有向图的表示,可以使用vector<vector<int>>来实现。外层的vector表示图的顶点,内层的vector表示从该顶点出发的边的目标顶点。例如,可以使用以下代码创建一个有向图的vector表示:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> graph;
// 添加顶点
graph.push_back({1, 2}); // 顶点0指向顶点1和顶点2
graph.push_back({3}); // 顶点1指向顶点3
graph.push_back({}); // 顶点2没有出边
graph.push_back({2}); // 顶点3指向顶点2
// 遍历图的顶点和边
for (int i = 0; i < graph.size(); i++) {
cout << "顶点 " << i << " 的出边:";
for (int j = 0; j < graph\[i\].size(); j++) {
cout << graph\[i\]\[j\] << " ";
}
cout << endl;
}
return 0;
}
```
这段代码创建了一个有向图,其中顶点0指向顶点1和顶点2,顶点1指向顶点3,顶点2没有出边,顶点3指向顶点2。输出结果为:
```
顶点 0 的出边:1 2
顶点 1 的出边:3
顶点 2 的出边:
顶点 3 的出边:2
```
这样就实现了有向图的表示。
#### 引用[.reference_title]
- *1* *2* *3* [C++ vector容器注意事项](https://blog.csdn.net/TABE_/article/details/122202695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]