我試圖弄清楚以下問題的最優實現:什麼數據結構用於對象的評估順序?
比方說,我們有一個類A
代表一個複雜的數學對象,並在建設初期持有所有需要的內在狀態。對於A
的每個對象a_i
,可以計算最終數值,該數值取決於其他a_j
與j < i
的非平凡方式,並且a_0
是已知的。此外,導致最終答案的公式需要特殊的評估順序,並且可以定義a_i
的比較運算符。
我想要做的是首先創建所有需要的a_i
,將它們推入一些有序數據結構,最後以正確的順序遍歷結構以獲得最終結果。
現在到了真正的問題:我使用哪種數據結構來以一般方式實現評估順序結構?二進制堆?或者我只是簡單地使用std :: vector並在之後進行排序?
謝謝!
這個問題太抽象了,我不能提供具體的答案。但是,std :: set或std :: multiset可能是您的問題的良好數據結構。 – 2011-03-21 16:42:05