빈 부스트 :: 그래프 g가 주어지면이 그래프의 정점 수를 설정하고 몇 개의 가장자리를 추가하려고합니다. 그러나 문서에서 관련 기능을 찾을 수 없습니다. 내가 발견 한 모든 예제는 초기화시 정점의 크기를 정의합니다 (Graph g (10)에서 10 개의 정점이있는 그래프를 정의 함). 그러나 그래프를 정의 할 때 크기를 알지 못합니다. 먼저 Graph g를 정의하고 나중에 크기를 설정하려고합니다.부스트에서 정점 수를 설정합니다. 그래프
1
A
답변
1
가장 간단한 방법은 원하는 각 정점에 대해 boost :: add_vertex (그래프) 메서드를 호출하는 것입니다. 여기
는 하나 꼭지점 하나를 추가 할 필요가 없습니다 Using C++ Boost's Graph Library주를 시작하기에 좋은 장소입니다. 당신이 신경 쓰는 것이 가장자리라면, add_edge()는 누락 된 버텍스를 추가 할 것입니다.
2
당신은 아마 같은 약간 더러운 트릭을 시도 할 수 있습니다 : 필요한 경우
그것은 adjacency_list에 대한의 add_edge의 부작용을 이용add_edge(0,4999,g);
remove_edge(0,4999,g);
, 즉, 사실 BGL은 정점의 벡터를 확장하는.
+0
나는 이것을 시험해보고'num_vertices (Graph)'로 검증했다. – Wiredchop
관련 문제
- 1. 부스트 그래프 정점 식별
- 2. 그래프 도구의 정점 좌표
- 3. 최소 정점 커버 된 그래프
- 4. n 정점 그래프 - 가능한 모든 그래프 조합을 인쇄하는 방법
- 5. 그래프의 모든 정점 수를 계산하십시오.
- 6. 최대 파일 수를 설정합니다
- 7. cellForRowAtIndexPath의 UILabel 수를 설정합니다.
- 8. 그래프 G를 고려해보십시오. 정점 7에서 정점 8까지의 거리는 무엇입니까
- 9. 하이브에서 매퍼의 최대 수를 설정합니다.
- 10. 그래프 []는 Mathematica에서 정점 레이블을 자릅니다.
- 11. 6 색 그래프 정점 색칠 알고리즘
- 12. tkinter는 최대 버튼 클릭 수를 설정합니다
- 13. 검도 그리드에서 수동으로 총 항목 수를 설정합니다.
- 14. 부스트에서 다각형 기능 확인
- 15. 부스트에서 행렬 반전
- 16. 부스트에서 JSON ptree 반복하기
- 17. 부스트에서 irange와 counting_range의 차이
- 18. 부스트에서 감마 분포
- 19. 부스트에서 pthread는 무엇입니까?
- 20. 부스트에서 컴파일 오류 throw_exception.hpp
- 21. 부스트에서 파일을 여는 방법
- 22. 부스트에서 벡터를 사용하는 방법
- 23. 부스트에서 표준화로 마이그레이션
- 24. 정점 레이블
- 25. C++ 그래프 정점 채색 라이브러리 또는 소스 코드
- 26. 각 n 개의 정점 그룹으로 구성된 그래프 분할
- 27. 2D 공간에서 가중치 그래프 (정점 간 거리를 가중치)를 시각화합니다.
- 28. 그래프 (정점 및 가장자리)로 MATLAB 신경망을 보는 방법
- 29. C++에서 그래프 표현 (정점 이웃)을위한 스마트 포인터 11
- 30. 그래프, 정점, STL 목록 : 목록이 비어있는 이유는 무엇입니까?
답장을 보내 주셔서 감사합니다. 문제는 5000 개의 정점을 추가해야 할 경우 add_vertex()를 5000 번 호출하지 않으려는 경우 매우 느릴 수 있다는 것입니다. – LittleSweet
이 작업에 소요될 수있는 기간을 결정하십시오. 테스트 코드를 작성하십시오. 법안. 시간이 오래 걸리는 경우 코드 및 일부 측정 값을 사용하여 질문하십시오. – ravenspoint
@ravenspoint LittleSweet에 동의합니다. 저는 프로파일 러를 실행했으며 그래프에 대한 메모리 할당이 런타임의 70 %를 차지하는 것으로 보입니다. 어쨌든 내가 추가 할 가장자리 수를 미리 할당 할 수 있습니까? –