문제

나는 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);

(가난하게) 적응 부스트의 예.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top