我的C++类会随着时间的推移构建一个树形结构。目前,树中的每个节点都是在构造时分配的(使用new)。该节点类仅使用了几个字节的内存。随着树的增长,可能会有数十万个节点;除了理论最大值2^33之外,在构建树时不知道节点的最大数量。我通过它们的指针引用树结构中的节点。所有节点都在销毁树时释放,此时才被销毁。
我正在寻找一个标准库容器或内存分配器/池,以便在我的树类中分配和存储节点,以减少内存碎片和内存分配开销。我想避免编写自定义分配器。该容器应具有以下两个属性:
1. 分配的对象不会在内存中移动,因此可以安全地通过指针引用。 2. 该类为大块对象分配内存,从而减少内存碎片。请注意,我并不需要整个容器在内存中连续。
我不需要容器的迭代器或查找功能,因为我的树结构存储了指针。哪个标准库类将为我提供此功能,并给出最低的内存开销?
我正在寻找一个标准库容器或内存分配器/池,以便在我的树类中分配和存储节点,以减少内存碎片和内存分配开销。我想避免编写自定义分配器。该容器应具有以下两个属性:
1. 分配的对象不会在内存中移动,因此可以安全地通过指针引用。 2. 该类为大块对象分配内存,从而减少内存碎片。请注意,我并不需要整个容器在内存中连续。
我不需要容器的迭代器或查找功能,因为我的树结构存储了指针。哪个标准库类将为我提供此功能,并给出最低的内存开销?