2014-11-28 6 views
2

내가그래프의 기존 가장자리 추가 및 제거 (BOOST)?

add_edge(1,2,G); 
add_edge(1,3,G); 
add_edge(0,2,G); 

지금은 다시 추가 말할 수 다음 G. 내가 추가 말할 수 있습니다 무향 그래프가 있다고 가정하자 :

add_edge(0,2,G); 
나는 0에서 내 그래프에서 두 가장자리가 금지 - -> 2?

무엇 내가 두 번 가장자리를 추가하고 내가 할 경우 발생합니다

remove_edge(0,2,G); 

두 가장자리가 사라? 아니면 아직도 그들 중 하나가 있습니까?

답변

3

의 질문에 모두 대답은, 그래프 G.

첫 번째 질문에 대한 대답의 정의에 따라 달라 boost::graph tutorial에 따라, 당신은 당신의 그래프 정의에 사용하는 OutEdgeList에 따라 달라집니다. 여러 가장자리 (예 : setS 또는 hash_setS)를 나타낼 수없는 컨테이너를 사용하는 경우 몇 번 삽입했는지에 관계없이 두 꼭지점 사이에 하나의 가장자리 만 있습니다. vectorS, multisetS 또는 이와 비슷한 것을 사용하면 add_edge()의 각 통화에 한 개의 가장자리가 삽입됩니다. the same page (페이지의 섹션은 직접 링크는 허용하지 않습니다 - 단지 remove_edge 검색)에 따라

두 번째 질문에 대한 대답

는 두 정점 사이의 모든 가장자리가 특정 remove_edge() 함수를 호출 한 후 제거 될 것입니다. remove_edge()의 여러 다른 버전이 있습니다 (동일한 페이지에서 설명). 각각 약간 다른 동작이 있습니다.