나는 인터넷 검색이나 문서를 읽음으로써 스스로 답할 수없는 Boost Graphic Library와 관련하여 또 다른 문제가 있습니다. 다른 질문과 직접적인 관련이 없으므로 새 스레드를 만드는 것이 더 좋습니다.BGL : 노드 및 에지의 데이터에 직접 액세스하려면 어떻게합니까?
인접성 레이아웃이있는 그래프가 있으며 번들 된 속성을 사용하여 노드 및 가장자리의 데이터에 액세스합니다. 나는 편의를 위해 내 그래프에 typedef를 사용한다. 따라서 저장된 데이터에 액세스 할 수 있습니다 (예 : 이런 식으로 뭔가를 입력하여 vertex_descriptor을 위해 :
이제Graph[my_vertex_descriptor].setX(4);
Graph[my_vertex_descriptor].setY(10);
내가 그런 일을 입력 할 수 있도록 데이터 저장 객체에 대한 참조를 정의하고 싶습니다 : 이것에 의하여
typedef Graph[vertex_descriptor]::type Vertex;
Vertex v = Graph[my_vertex_descriptor];
v.setX(4);
v.setY(10);
또는 지도의 []operator
과 특정 설명자 개체를 사용하여 액세스되는 매핑 된 값의 불필요한 재 계산을 피하기 위해 이와 비슷한 방법을 사용합니다. 내 꼭지점과 모서리에는 많은 양의 데이터가 포함되어 있으므로 특정 상황에서 현재 코드는이 데이터를 처리하기 위해 동일한 값을 여러 번 재 계산합니다. 이것은 추한 것 같습니다.
아마도 내가하려는 일을 달성 할 가능성이 있는지 누가 알 수 있습니까? 내 머리 위로 떨어져
는 위에서 실제로해야한다 : 는'Bundled_vertex_property prop_v = GET (vertex_bundle, my_graph, vertex_descriptor)' 'Bundled_edge_property prop_e = GET (edge_bundle, my_graph, vertex_descriptor)' 또한 vertex_bundle''그'edge_bundle' 및주의 변수가 아니라 미리 정의 된 설명자입니다. –