亲爱的,这很容易,我希望!
我有一个图,我想静态分配。我知道我将有N
节点,并且每个节点最多有 K << N
边缘(例如N = 1,000,000
和K = 3
),还有。如果我不仅可以初始化具有一定数量节点的图形,而且还可以初始化具有预定义数量的边的图形,将会很方便。
你知道这有可能吗?
如果不是,您是否建议放弃邻接表的邻接表?我将拥有大量的边缘,这就是为什么静态分配会很棒的原因。
干杯!
最佳答案
Boost.Graph具有Compressed Sparse Row Graph,它可以完成您所需的操作。这对内存非常友好。与其他Boost图一样,您可以将其声明为有向,无向等,并将属性与其元素相关联。
需要注意的是,该图是不可变的,这意味着您可以创建和填充它,但以后不能更新。
生成图形时,需要准备好所有边缘。看到类似的主题here
关于c++ - 静态分配 boost 图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19858111/