我想创建一个非常易于使用的 2D 网格。网格中的每个单元格都需要能够存储大量数据。理想情况下,我希望能够一次遍历一个网格,并获得任何网格单元的直接邻居。
我的第一个想法是存储一个指向 Cell 邻居(总共 4 个)的指针向量,然后为 leftNeighbour、rightNeighbour 等创建便利函数。在初始化后连接网格。
std::vector 应该是一个动态可调整大小的数组,所以如果我只想硬编码指针的位置(0 == 左,1 == 右等),这让我觉得没有必要。但是,它确实允许以更好的方式遍历单元格的邻居。我必须考虑的另一件事是该单元格是否位于网格边缘的边界上(是否对此进行测试或只是隐式地将网格扩展一个单元格,这样就不会发生这种情况)。
谁能提出一个更好的选择,或者这听起来像一个合理的设计?
谢谢,丹