C++ RapidXml和内存池

C++ RapidXml和内存池,c++,rapidxml,C++,Rapidxml,使用RapidXML,我需要创建和销毁大量XML节点和XML属性。我在内存池文档中读到,无法使用allocate_string函数释放内存池中创建的单个字符串 但以这种方式,内存池的大小将增加,在我看来,删除链接到不再使用的属性或节点的字符串并不能成功是一个问题 我担心的是用一个过于动态的系统来填充内存池空间,在这个系统中,我在没有“先验”已知模式的情况下创建和销毁了很多节点 有没有办法跳过这个问题 增加: 阅读文档时,我发现了内存池::设置分配器函数,乍一看,它似乎解决了我的问题。我试图使用这

使用RapidXML,我需要创建和销毁大量XML节点和XML属性。我在内存池文档中读到,无法使用allocate_string函数释放内存池中创建的单个字符串

但以这种方式,内存池的大小将增加,在我看来,删除链接到不再使用的属性或节点的字符串并不能成功是一个问题

我担心的是用一个过于动态的系统来填充内存池空间,在这个系统中,我在没有“先验”已知模式的情况下创建和销毁了很多节点

有没有办法跳过这个问题

增加:


阅读文档时,我发现了内存池::设置分配器函数,乍一看,它似乎解决了我的问题。我试图使用这个函数,但没有成功。有人使用过set_分配器函数吗?我在internet上找不到有关的示例或参考。

rapidxml中的内存池不支持释放(除了释放整个池)。这是因为它们的设计目的是在解析期间提供最大的分配性能,在这种情况下,您不需要取消分配节点

如果您需要手动分配和取消分配节点,那么没有什么可以阻止您使用new/delete从堆中分配节点

set_分配器函数在这里没有用处。它允许您替换整个池的分配机制,而不是单个节点的分配机制