2012-01-25 17 views
1

什麼是存儲與在一個矢量節點未知順序圖中的最好的方法。例如,我有節點在一個未知的未來才能像35,23,89,200,12,89,569等等......我想將它們存儲在這樣一種方式,內存不被浪費和節點,如果在一定的時間,然後有效地訪問這將會非常棒。可能有些哈希函數將工作,但如果有一個可以區分的節點,請告訴我,或是否有針對任何其他辦法。存儲與未知節點的圖形命令

感謝

+0

做的數字代表什麼?節點只包含整數? – WeaselFox

+0

這些是節點編號節點#35,節點#200那樣 –

回答

1

簡單的解決方案我想到的只是把它們插入到你的載體才能,並創建一個map<int,int>從它們的值映射到其索引。

在您的例子:

map[35] == 0 
ma[[23] == 1 
map[89] == 2 
map[200] == 3 
map[12] == 4 
... 
現在

,訪問節點ivector[map[i]]

編輯:
第二種可能性將是使用的set代替vector持有的元素,但它可能並不總是期望[集有沒有重複,將不會包含在你插入的順序元素],但如果它適合你考慮。

+0

爲什麼不直接使用映射從索引到節點類/結構?也映射內部實現爲二叉樹,你可能會更好使用像在boost中的散列映射。 – WeaselFox