我想將<Object A, Relation R, Object B>
類型的不同關係存儲在一個集合或多個集合中(約100到1000個)。我希望能夠搜索A
和(A,R)
,但不會爲(A,R,B)
(並且將只有少數(< 5)與A
和R
相同的關係,所以線性搜索如果罰款那麼)。Set與Multiset
是更好地存儲在一個集中的關係(由A
,R
和B
訂購)或將它們存儲在由A
和R
訂購了多集?我已經研究了哈希表,但是他們的迭代沒有(有序)集迭代那麼快,並且模式匹配也需要很多迭代。 (這將不得不尋找曾經找迭代開始,然後重複,直到與同一對象的所有關係都做了。)
感謝, 拉格納
如何將它們存儲在向量中?對於1000個元素,我的錢就是最快的實現。 –
程序會經常搜索集合/向量,因爲它必須在不同的關係上進行大量的模式匹配(程序是一個幾何問題求解器,它必須找到它可以應用某個定理的情況) – Ragnar
@Ragnar:問題並不在於搜索的頻率如何,而是當地圖的複雜結構與矢量的簡單結構相得益彰時。它在支付使用地圖之前的元素數量往往遠高於人們的預期。 –