2012-02-13 44 views
5

Làm cách nào để sao chép biểu đồ của loại adjacency_list sang một biểu đồ khác của loại adjacency_list?sao chép biểu đồ (adjacency_list) sang một biểu đồ khác

typedef adjacency_list<setS, setS, undirectedS, NodeDataStruct, EdgeDataStruct> MyGraph; 
MyGraph g1, g2; 

// processing g1: adding vertices and edges ... 
// processing g2: adding some vertices and edges ... 

g1.clear(); 
g1 = g2 // this gives an execution error (exception) 
g1 = MyGraph(g2); // this also gives an execution error 
g2.clear(); 

Trả lời

6

Bạn đã thử copy_graph chưa?


Khó biết vấn đề là gì mà không nhìn thấy lỗi nhưng nếu tôi phải đoán, đầu tiên tôi muốn chắc chắn rằng bạn đang cung cấp một bản đồ vertex_index để copy_graph vì nó không có sẵn theo mặc định khi bạn sử dụng setS để lưu trữ đỉnh. Dựa trên số earlier question của bạn, có vẻ như bạn đã biết được điều đó nên chúng tôi chỉ cần tập hợp tất cả lại với nhau.

typedef adjacency_list<setS, setS, undirectedS, NodeDataStruct, EdgeDataStruct> MyGraph; 
    typedef MyGraph::vertex_descriptor NodeID; 

    typedef map<NodeID, size_t> IndexMap; 
    IndexMap mapIndex; 
    associative_property_map<IndexMap> propmapIndex(mapIndex); 

    MyGraph g1, g2; 

    // processing g1: adding vertices and edges ... 
    // processing g2: adding some vertices and edges ... 

    int i=0; 
    BGL_FORALL_VERTICES(v, g2, MyGraph) 
    { 
    put(propmapIndex, v, i++); 
    } 

    g1.clear(); 
    copy_graph(g2, g1, vertex_index_map(propmapIndex)); 
    g2.clear(); 
+0

Đối với copy_graph người ta nói rằng loại biểu đồ phải là mô hình của VertexListGraph. Trong trường hợp của tôi, tôi đã nói rằng đó là một adjacency_list. – shn

+1

@ user995434 Nhưng adjacency_list là một mô hình của VertexAndEdgeListGraph là một tinh chỉnh của VertexListGraph. Do đó adjacency_list là một mô hình của VertexListGraph. –

+0

Bạn có thể đưa ra một ví dụ minh họa nhỏ về việc sử dụng copy_graph() cho những gì tôi muốn làm không? Nó luôn cho tôi lỗi biên dịch. Cảm ơn trước. Đã thêm – shn

Các vấn đề liên quan