struct Graph { unordered_map<int, Point> points; unordered_map<int, unordered_map<int, int>> edges; void addPoint(int id, string name, string intro) { points[id] = Point(id, name, intro); } void addEdge(int from, int to, int weight) { edges[from][to] = weight; edges[to][from] = weight; } };
时间: 2024-04-27 19:25:31 浏览: 82
linux hash_map
这段代码是一个图的数据结构的实现,包含点和边的信息。其中,点用一个 `unordered_map` 存储,键为点的id,值为一个 `Point` 类型,存储了点的名称和介绍。边用一个二维的 `unordered_map` 存储,键为起点id,值为一个 `unordered_map`,二级键为终点id,值为边的权重。
该数据结构提供了两个方法:`addPoint` 和 `addEdge`,用于向图中添加点和边。其中,`addPoint` 接收三个参数,点的id、名称和介绍,将其封装成 `Point` 类型并添加到 `points` 中。而 `addEdge` 接收三个参数,边的起点、终点和权重,将其添加到 `edges` 中。需要注意的是,由于是无向图,因此在添加边的时候,需要将起点和终点都添加到 `edges` 中,并设置相同的权重。
阅读全文