gpt4 book ai didi

c++ - 将图 (adjacency_list) 复制到另一个图

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:12 25 4
gpt4 key购买 nike

如何将 adjacency_list 类型的图复制到另一个 adjacency_list 类型的图?

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();

最佳答案

你试过了吗copy_graph


在没有看到错误的情况下很难知道问题出在哪里,但如果我不得不猜测,我会首先确保您提供了一个 vertex_index 映射到 copy_graph因为当您使用 setS 进行顶点存储时,默认情况下它不可用。根据您的earlier question ,看来您已经弄清楚了,所以我们只需要将它们整合在一起即可。

  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();

关于c++ - 将图 (adjacency_list) 复制到另一个图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com