Tôi muốn sử dụng phương pháp tăng cường breadth_first_visit
và tôi muốn cung cấp bản đồ màu của riêng mình "bên ngoài". tôi định nghĩa đồ thị như sauBản đồ màu trong đồ thị tăng cường breadth_first_visit
typedef boost::adjacency_list<boost::setS, boost::listS, boost::undirectedS,
boost::property<boost::vertex_index_t, int,
boost::property<boost::vertex_color_t, boost::default_color_type,
Node_t>>> GraphType;
nơi Node_t
là một cấu trúc, xác định các thuộc tính cho các đỉnh. Tuy nhiên, tôi không thể tìm hiểu làm thế nào tôi có thể cung cấp BFS với bản đồ màu của riêng tôi. Tôi muốn lưu trữ các màu đỉnh trong một vectơ, vì vậy định nghĩa của tôi trông giống như
std::vector<boost::default_color_type> colors;
nhưng tôi không thể tìm ra, cách sử dụng nó cho các bfs.
Cả
boost::breadth_first_search(g, *boost::vertices(g).first,
boost::color_map(colors));
cũng không
boost::breadth_first_search(g, *boost::vertices(g).first,
boost::color_map(&colors[0]));
đang làm việc. Trong khi lần đầu tiên cung cấp cho tôi một loạt các lỗi trình biên dịch khác nhau (ví dụ: mặc định-int không được hỗ trợ, "boost :: color_traits" sử dụng loại lớp yêu cầu danh sách đối số loại) hủy bỏ biên dịch thứ hai chỉ với C2664: 'boost :: put' không thể chuyển đổi tham số 2 từ 'void *' thành 'ptrdiff_t'.
Vì vậy, câu hỏi đặt ra là: Làm cách nào tôi có thể sử dụng cấu trúc ánh xạ màu của riêng mình. Một câu hỏi bổ sung sẽ là: Làm thế nào tôi có thể nhận được giá trị màu cho một vertex_descriptor cụ thể?
01 ''. ')); 'bạn ' không đi qua khách truy cập - chữ ký để chuyển khách truy cập và bản đồ màu là gì? –
phew, thats khá một thời gian dài trước đây;) Tôi đã không thử này ra, nhưng [ở đây] (http://www.boost.org/doc/libs/1_62_0/libs/graph/doc/breadth_first_visit.html) bạn tìm chữ ký thứ hai với một đối số 'BFSVisitor'-class. – AquilaRapax
Tôi nghĩ rằng tôi đã tìm ra nó - nó đang sử dụng chữ ký "có tên đối số". Tôi không biết làm thế nào bạn có nghĩa vụ phải biết tên nào là đối số hợp lệ, nhưng đối với 'breadth_first_search' có vẻ như là' visitor' là một và 'color_map' là một đối số khác. –