0

我正在编写一个应该模拟城市的程序,我遇到的一个问题是如何存储大量相互关联的数据。例如,每个Street都有一个direction枚举(NORTH_ONE_WAY、EAST_WEST 等)和其他属性。最重要的属性是每条街道都有一个列表intersections(与它相交的街道的地图以及它相交的街区号)。从这个数据结构中,我应该能够解析它并创建一个可视化(稍后会出现,不是这个问题的一部分)。

问题是:为此使用的最佳数据结构类型是什么?显然,关系数据库是一个不错的选择,但是如果我用 C++ 编写(不是这个问题的约束,但 C++ 实现会是一个加号),我应该使用它吗?还有哪些其他数据结构可以为此工作?

4

2 回答 2

0

只是不要在每个本地对象中保持关系。有一个评估关系的“元”对象,它可以缓存这些。

一些详细说明:一条街道当然应该知道它有灯笼、漂亮的花园和十字路口。但它是任何事物的交叉点(没关系)。街道在十字路口可能有单车道或双车道(左转)。交叉点由一些更高的实例维护。

(向左车道司机道歉)

于 2013-08-24T19:14:52.263 回答
0

您描述的数据结构是一个。例如,参见Boost 的 BGL,了解在图形上运行的通用库。请注意,这并不意味着您不会使用数据库:数据的存储和内存中的表示往往是相当不同的。实际的表示往往取决于您想对数据做什么。

于 2013-08-24T19:01:39.633 回答