Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据模型,图形库,C++; 我创建了一个C++图形库来实现图形算法。我正在考虑类“Graph”的适当表示_C++_Graph_Datamodel - Fatal编程技术网

数据模型,图形库,C++; 我创建了一个C++图形库来实现图形算法。我正在考虑类“Graph”的适当表示

数据模型,图形库,C++; 我创建了一个C++图形库来实现图形算法。我正在考虑类“Graph”的适当表示,c++,graph,datamodel,C++,Graph,Datamodel,图有两种主要类型(定向/非定向)和表示(列表/矩阵) 我在算法方面没有问题……但我想提出一个合适且健壮的数据结构(如果需要,包括类的继承序列) 目前我并没有使用任何特殊的数据结构来表示图,静态方法有作为输入参数的关联、邻接。。。矩阵 这样的类应该保留图形的两种表示,还是只保留一种表示,并在两种表示之间具有转换函数?你更喜欢哪一种 许多人用不同的方法解决了这个问题 在重新发明轮子之前,您可以先看看。别忘了。在重新发明轮子之前,你可以先看看。别忘了。你这样做是为了上课还是作为学习练习?因为如果没有,

图有两种主要类型(定向/非定向)和表示(列表/矩阵)

我在算法方面没有问题……但我想提出一个合适且健壮的数据结构(如果需要,包括类的继承序列)

目前我并没有使用任何特殊的数据结构来表示图,静态方法有作为输入参数的关联、邻接。。。矩阵

这样的类应该保留图形的两种表示,还是只保留一种表示,并在两种表示之间具有转换函数?你更喜欢哪一种


许多人用不同的方法解决了这个问题

在重新发明轮子之前,您可以先看看。别忘了。

在重新发明轮子之前,你可以先看看。别忘了。

你这样做是为了上课还是作为学习练习?因为如果没有,正如你所指出的,这个问题已经解决了很多次。当一个人浏览各种解决方案时,他意识到有一些问题是他没有解决的,比如:

  • 有向/无向图
  • 将用户数据与节点和边关联
  • 稀疏图与稠密图
  • 大图与小图
  • 基于模板与非基于模板
  • 对其他包的依赖性
等等

尝试查看一些最流行的实现:


你这样做是为了上课还是作为学习练习?因为如果没有,正如你所指出的,这个问题已经解决了很多次。当一个人浏览各种解决方案时,他意识到有一些问题是他没有解决的,比如:

  • 有向/无向图
  • 将用户数据与节点和边关联
  • 稀疏图与稠密图
  • 大图与小图
  • 基于模板与非基于模板
  • 对其他包的依赖性
等等

尝试查看一些最流行的实现:


做得很好,但代码在某些情况下非常复杂。@xis19:哦,只是有点复杂:)虽然这通常是灵活性/通用性的折衷办法之一。很抱歉,您没有回答我的问题:-)。。。Boost太复杂了,而且a在图形算法中的功能非常少。做得不错,但代码在某些情况下非常复杂。@xis19:哦,只是有点复杂:)虽然这通常是灵活性/通用性的权衡之一。很抱歉,您没有回答我的问题:-)。。。Boost太过复杂,在图算法中的功能非常少。实际上,这个问题似乎没有解决很多次,因为在那里似乎没有太多的C++模板图库。实际上,这个问题似乎没有被解决很多次。从这个意义上说,那里似乎没有那么多C++模板图库。