我正在處理由多個冗餘值組成的大文件(使用YAML的錨點和引用)。我在每個結構上做的處理都很昂貴,我想查看我是否正在查看對已經處理的錨點的引用。在Python中(使用python-yaml),我通過構建由id(節點)鍵入的字典來實現此目的。由於yaml-cpp使用Node作爲引用類型,但是,這似乎不適用於此。有什麼建議麼?如何判斷我是否已經處理了一個節點
這與Retrieve anchor & alias string in yaml-cpp from document類似,但雖然該功能足以解決我的問題,但它並不是必需的 - 例如,如果我可以以某種方式獲得基於節點內部地址的散列,例如,那將是精細。
我正在做的昂貴的事情是計算每個節點包括自己及其子女的散列。如果你試圖做這個節點的大名單上,檢查將有 -
Node a = ...;
process(a);
Node b = ...;
if (!a.is(b)) {
process(b);
}
我想這是不完美:
我真正需要的是專業化的std ::哈希這樣我就可以使用unordered_map的方式,所以很遺憾成對平等不會做太大。 – Alex