我有一个2d整数数组,用于图块映射。
映射的大小未知,并在运行时从文件中读取。当前最大的文件是2500个项目(50x50网格)。
在前面的问题中,我有一种动态分配内存的有效方法,但是人们一直说这是个坏主意,因此我一直在考虑是否仅使用一个大数组,而在使用较小的映射时不填满它。
人们是否知道任何一种解决方案的利弊?欢迎任何建议或个人意见。
C++ btw
编辑:所有 map 都是我制作的,因此我可以选择最大尺寸。
最佳答案
我的偏好是动态分配。这样一来,如果您遇到了一个大得惊人的 map ,您(希望)如果正确编写就不会溢出,而使用固定大小,唯一的选择就是返回错误并失败。
大概加载瓦片 map 是很少的操作。我也愿意打赌,您甚至无法衡量两者之间有意义的速度差异。除非有明显的性能下降,否则您实际上正在遇到其他问题,这会导致您遇到问题,静态大小的问题似乎是过早的优化,并在以后提出问题。