我目前使用 C++ 使用 boost::graph 进行一些与图相关的计算。boost::graph 可以将其图形输出为点文件,我使用 std::stringstream 来捕获输出点文件。因此点文件的内容驻留在内存中。
我想使用点文件来可视化图形(尽可能快)。因此,我想生成点文件,生成 svg 文件并将其打印到某个画布上。我想避免为此使用临时文件,因为图形应该很小并且内存仍然可用。
然而,graphviz libgraph 只有这个功能extern Agraph_t *agread(FILE *);
,我能想象到使这个工作的唯一方法是在文件句柄中破解,struct __FILE
这实际上是不可移植的。
您如何让库将您的内存内容作为 Unix/linux 中的文件读取?
我刚刚发现 GraphViz 的 libcgraph 允许在此处输入重载版本,但到目前为止,文档并没有将我指向一些有用的地方。