我有一个问题/好奇心,假设我想实现一个列表,例如基本上可以使用Cormen书的方法。书中解释了如何实现、插入、删除、关键字搜索等操作。
然而,在内存使用方面却没有说什么。例如,如果我想在整数列表中插入一个整数。我可以首先创建一个节点(在那里分配内存),插入整数,然后将节点插入列表中。如果我想要删除一个整数,一旦我知道它存储在哪个节点中,就必须释放内存。
我现在在想,预分配内存以存储10个节点并保持指向可用节点的指针是否更方便。如果内存池已满,则为20个节点重新分配内存,如果池越大,则将其大小减半(依此类推)。当然,内存池更复杂,因为我需要处理可能的内存碎片等问题。
我所说的有任何意义吗?还是没有意义?我曾在游戏编程书中读到,内存预分配可以提高性能,但我想知道如何做到这一点。