필요한 족장 _list 도움이 필요합니다
-
03-07-2019 - |
문제
나는 boost의 awnacency_list 유형을 사용하려고 노력하고 있으며 이해에 어려움이 있습니다. 선적 서류 비치.
State라는 클래스를 정의하고 미국의 각 주마다 하나의 인스턴스를 인스턴스화한다고 가정 해 봅시다.
class State { ... };
State california, oregon, nevada, arizona, hawaii, ...
나는 이것들을 부스트에 입력하고 싶습니다 :: Adjacency_list 정점은 상태이고 가장자리는 경계입니다. 위에 나열된 상태의 경우 그래프 에이 데이터가 있다고 생각합니다.
california : oregon, nevada, arizona
hawaii :
oregon : california, nevada
nevada : oregon, california, arizona
arizona : california, nevada
INT를 그래프에 넣는 방법을 이해하고 상태 배열을 만들고 배열 인덱스를 그래프에 삽입하는 것을 고려했지만 다음과 같이 말할 수 있어야합니다.
add_edge(california, oregon, graph);
그러나 물론 그것은 작동하지 않습니다. 도와주세요!
편집하다:
여기에 있습니다 거의 정확히 내가 필요한 것의 예입니다.
해결책
boost :: hallencency_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);
(가난하게) 적응 부스트의 예.
제휴하지 않습니다 StackOverflow