我在C ++中执行一些粒子模拟,我需要保留粒子之间的联系人信息列表。联系人实际上是包含与联系人相关的一些数据的数据结构。每个粒子都用唯一的ID标识。联系人丢失后,将从列表中删除。模拟的瓶颈在于计算力(触点内部的例程),并且根据联系人列表的实际组织方式,我发现了对整体性能的重要影响。
目前,我正在使用c ++ unordered_map(哈希映射),其键是从应用于粒子的两个唯一IDS的对函数获得的单个整数,值是联系人本身。
我想知道是否有更好的方法解决这个问题(有效地组织联系人列表,同时保持与他们相关的粒子的信息),因为我的方法只是因为我阅读并找到而不是哈希地图插入和删除都很快。
提前致谢。