Memory management 在给定地址分配堆内存

Memory management 在给定地址分配堆内存,memory-management,heap-memory,entity-component-system,Memory Management,Heap Memory,Entity Component System,我正在开发一个实体组件系统,现在我把所有的东西都安装好并运行起来了,我决定钻研一下优化。 目前,我有一个Gameobject类,它存储一个无序的_映射,其中包含组件ID和相应的组件指针。为了加快速度,我想尝试在连续内存中分配堆上的组件,而不将它们复制到向量中。有了这个,我将能够通过简单地获取第一个组件,然后从该地址向上移动组件的大小来迭代它们,基本上消除了计算机在迭代指针时必须通过的常量搜索来查找不同的内存地址 有没有办法做这样的事?我倾向于同意这个答案。如果在映射中循环是此映射的主要操作,无序

我正在开发一个实体组件系统,现在我把所有的东西都安装好并运行起来了,我决定钻研一下优化。 目前,我有一个Gameobject类,它存储一个无序的_映射,其中包含组件ID和相应的组件指针。为了加快速度,我想尝试在连续内存中分配堆上的组件,而不将它们复制到向量中。有了这个,我将能够通过简单地获取第一个组件,然后从该地址向上移动组件的大小来迭代它们,基本上消除了计算机在迭代指针时必须通过的常量搜索来查找不同的内存地址


有没有办法做这样的事?

我倾向于同意这个答案。如果在映射中循环是此映射的主要操作,
无序映射
可能不是您想要的。看起来要么使用自动连续的类似数组的数据结构,要么为此编写自己的数据结构。无序的_映射既用于迭代,也用于根据组件ID查找组件并检索它们的指针,但是是的,编写自己的包含数据的结构似乎开始成为我的最佳选择