什麼是存儲與在一個矢量節點未知順序圖中的最好的方法。例如,我有節點在一個未知的未來才能像35,23,89,200,12,89,569等等......我想將它們存儲在這樣一種方式,內存不被浪費和節點,如果在一定的時間,然後有效地訪問這將會非常棒。可能有些哈希函數將工作,但如果有一個可以區分的節點,請告訴我,或是否有針對任何其他辦法。存儲與未知節點的圖形命令
感謝
什麼是存儲與在一個矢量節點未知順序圖中的最好的方法。例如,我有節點在一個未知的未來才能像35,23,89,200,12,89,569等等......我想將它們存儲在這樣一種方式,內存不被浪費和節點,如果在一定的時間,然後有效地訪問這將會非常棒。可能有些哈希函數將工作,但如果有一個可以區分的節點,請告訴我,或是否有針對任何其他辦法。存儲與未知節點的圖形命令
感謝
簡單的解決方案我想到的只是把它們插入到你的載體才能,並創建一個map<int,int>
從它們的值映射到其索引。
在您的例子:
map[35] == 0
ma[[23] == 1
map[89] == 2
map[200] == 3
map[12] == 4
...
現在
,訪問節點i
爲vector[map[i]]
編輯:
第二種可能性將是使用的set
代替vector
持有的元素,但它可能並不總是期望[集有沒有重複,將不會包含在你插入的順序元素],但如果它適合你考慮。
爲什麼不直接使用映射從索引到節點類/結構?也映射內部實現爲二叉樹,你可能會更好使用像在boost中的散列映射。 – WeaselFox
做的數字代表什麼?節點只包含整數? – WeaselFox
這些是節點編號節點#35,節點#200那樣 –