我想创建一个非常易于使用的2D网格,每个网格单元都需要能够存储大量数据。理想情况下,我希望能够逐个单元地遍历网格,并获得任何网格单元的相邻单元。
我的第一个想法是将指向单元相邻元素的指针向量存储起来(总共4个),然后创建leftNeighbour、rightNeighbour等方便的函数,在初始化后连接网格。
std :: vector应该是一个动态可调整大小的数组,因此如果我只要硬编码指针的位置(0 == left,1 == right等),这对我来说似乎是不必要的。然而,它确实提供了一种更好的遍历单元的相邻单元的方法。另一件事我必须考虑的是,如果单元在与网格边缘相邻(是否测试或仅隐式扩展网格一个单元,以使这永远不会发生)。
有人能提出更好的替代方案吗?还是这听起来像一个合理的设计?
谢谢,丹
我的第一个想法是将指向单元相邻元素的指针向量存储起来(总共4个),然后创建leftNeighbour、rightNeighbour等方便的函数,在初始化后连接网格。
std :: vector应该是一个动态可调整大小的数组,因此如果我只要硬编码指针的位置(0 == left,1 == right等),这对我来说似乎是不必要的。然而,它确实提供了一种更好的遍历单元的相邻单元的方法。另一件事我必须考虑的是,如果单元在与网格边缘相邻(是否测试或仅隐式扩展网格一个单元,以使这永远不会发生)。
有人能提出更好的替代方案吗?还是这听起来像一个合理的设计?
谢谢,丹