對不起,提前對於冗長的解釋!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