gpt4 book ai didi

c++ - 需要 boost adjacency_list 帮助

转载 作者:搜寻专家 更新时间:2023-10-31 02:01:27 25 4
gpt4 key购买 nike

我正在尝试使用 Boost 的 adjacency_list 类型,但我无法理解 documentation .

假设我定义了一个名为 State 的类,并为美国的每个州实例化了一个实例:

class State { ... };
State california, oregon, nevada, arizona, hawaii, ...

我想将这些输入到 boost::adjacency_list 中,顶点是状态,边是边界。对于我上面列出的状态,我认为该图表将包含以下数据:

california : oregon, nevada, arizona
hawaii :
oregon : california, nevada
nevada : oregon, california, arizona
arizona : california, nevada

我了解如何将整数放入图中,我考虑过只制作一个状态数组并将它们的数组索引插入图中,但似乎我应该能够说:

add_edge(california, oregon, graph);

但这当然行不通。请帮忙!

编辑:
Here's一个几乎正是我需要的例子。

最佳答案

阅读 boost::adjacency_list,看来你应该使用顶点的属性而不是类之类的东西:

struct VertexProperties {
std::string stateName;
};

typedef adjacency_list<listS, listS, bidirectionalS, VertexProperties> Graph;
Graph adjacentStates(50);

property_map<Graph, std::string VertexProperties::*>::type
stateName = get(&VertexProperties::stateName, adjacentStates);

add_edge(vertex("california", adjacentStates), vertex("oregon", adjacentStates), adjacentStates);

(差)改编自an example in boost .

关于c++ - 需要 boost adjacency_list 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/608329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com