2013-05-02 44 views
0

我有一個關於使用具有字符串作爲鍵的散列的問題。假設我有一個將字符串映射到雙精度的散列。將字符串標記爲int以獲得更快的散列映射

問題是,我聽到有人說,將字符串標記爲整數並使散列圖整數倍增而不是雙倍字符串更好?在Python或C++(2個問題)中,這通常會更快嗎?還是無所謂?假設我們在C++中使用boost unsorted_map,所以它就像Python字典一樣。

如果鍵實際上是(字符串,字符串) - > double或在C++ unsorted_map>中,這個問題會嗎?

回答

0

如果你使用字符串標記字符串,你應該小心,不要讓不同的字符串具有相同的標記。 std :: unordered_map也會使用散列進行快速搜索,但也會照顧具有相同散列但具有不同值的字符串。當然這需要一些時間。

如果你可以用兩個字符串永遠不會有相同的標記來標記字符串,那麼使用map和ints作爲鍵是非常好的主意。