【问题标题】:how to save a Graph in a file and later call it?如何将图形保存在文件中,然后再调用它?
【发布时间】:2019-05-17 10:20:52
【问题描述】:

我必须读取代表电路的文件。然后将该电路转换为 DAG。我已经使用邻接列表做到了。

我的问题是如何将 DAG 保存到文件中,这样我就不必在每次程序执行时再次读取文件?

我的意思是只需读取一次文件并构建图表。然后,每当我们需要该图时,我们只需调用它或读取它。

就像我们在 MATLAB 中一样:

% save the constructed graph    
save ('Graph.mat', 'Graph';
% simply just load it
load Graph;

我的问题是一些电路非常大,需要相当长的时间才能转换为图形。如果每次运行都发生这种电路到图形的转换,那将是非常令人沮丧的。 (在 C++ 中)

任何帮助将不胜感激。

【问题讨论】:

  • 您有相互冲突的要求...您希望能够将图形保存到文件(以某种格式),但您不应该从文件中重新加载它?还是您的意思是您不想读取 original 文件并重新创建图形?这是非常不同的,在我看来不值得。您的图形创建代码在某种程度上是慢还是坏?为什么不能只阅读原始电路描述文件并在需要时重新创建图表?
  • 是的,我不想每次都重新创建图表。 Graph 创建是一个非常缓慢的过程。因为我可能在项目的不同部分多次需要 DAG

标签: c++ file graph save


【解决方案1】:

你想做的是Serialization and Unserialization。有很多方法可以做到这一点,但基本上你想存储足够的数据来重建你的所有对象和相互关系。在 MATLAB 和其他系统为您执行此操作的地方,在 C++ 中您必须自己设计系统。最好的办法是选择一种已知且稳定的方式来表示数据(例如 JSON),为此使用一个库,然后设计其余部分。

【讨论】:

  • 感谢您的回答。看来我应该编写很多代码来做到这一点,对吧?我正在为此寻找一些库或退出算法。我认为按原样处理它,因为它有效但不幸的是耗时
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 2016-03-24
相关资源
最近更新 更多