对不起,提前对于冗长的解释!C++中的信息树的设计问题
我有一个C++应用程序,它使用hash_map
来存储从文本文件解析的信息树。地图中的值是孩子hash_map
或string
。这些值是从文本文件中解析出来的,然后存储到地图中。
我想避免必须将字符串和映射作为副本发送到哈希映射分配函数,因此在解析文件时,我创建了一个指向new string()
或new hash_map()
的指针,并将该值存储为映射为“任意“数据(指向void的数据)。
但是,当涉及到清理时,这会带来相当大的问题,因为删除一个void并不像一个人想要的那样工作(这是有道理的)。我寻找一个简单的解决方案,只需创建一个Object
类,并创建子类StringObj
和HashMap
,它们存储其各自的数据,并调用适当的析构函数,因为hash_map
值类型已更改为指向Object
的指针。
有没有更简单的方法来解决这个问题?我研究了动态投射,并认为它可能运作良好,因为我可以从失败的投射中捕捉异常,并适当地对待它,但我不禁感到可能有更简单的解决方案,使它复杂一点。
对此提出建议?
由于提前, Jengerer
你在使用hash_maps中的键吗?它们对树还是每个地图都是唯一的? – sje397 2010-09-14 04:50:43