print_edges() 또는 print_graph() 함수없이 boost :: filtered_graph()를 사용하는 다른 방법이 있으면 바랬습니다.print_graph()없이 boost filtered_graph 사용
링크 here의 경우 필터는 인쇄 그래프 또는 인쇄 가장자리 기능이 호출 될 때만 모든 노드에서 작동하는 것으로 보입니다.
내가이 수 std ::
COUT 인쇄하기 때 술어가 다른 방법이 있나요 그래프의 모든 노드 또는 가장자리에 작용 것을 이해한다, 나는 그것을 사용할 수 있을까? for_each (begin_iter, end_iter) 또는 이와 비슷한 것을 사용할 수 있습니까? 제발 제안 해주세요. 이 코드는 관계없이 MyGraph_t인지 여부를 작동
BGL_FORALL_VERTICES(src, g, MyGraph_t)
{
BGL_FORALL_OUTEDGES(src, ed, g, MyGraph_t)
{
MyGraph_t::vertex_descriptor tgt = target(ed, g);
... do something ...
}
}
: 당신의 전형적인 코드는 같이 할 수 BGL_FORALL_EDGES 등
BGL_FORALL_VERTICES, BGL_FORALL_OUTEDGES :
이 동의하지만, filtered_graph에 사용하는 술어에 대해 작동합니까? 예를 들어, fg (G, edge_predicate) -> fg는 G에 대해 가장자리 술어로 필터링 된 그래프입니다. 자, 어떻게 BGL_FORALL_XX()를 사용합니까 ?? .. 내 가장자리 술어는 그래프에서 가장자리로 입력을 받아 속성을 수정합니다. 인쇄 그래프가 호출되면 각 가장자리를지나 각 가장자리의 조건자를 호출합니다. 어떻게 BGL_FORALL_xxx를 사용하여 이것을 실현합니까 ?? – Pogo
물론. 모든 BGL 그래프 유형에서 작동합니다. –