2011-12-23 80 views
1

我想寫在c中的東西,將兩個數組相互關聯,但我是c語言的新手,我不想從錯誤的路徑開始......我需要什麼是類似python的字典和我正在考慮使用結構。這是要走的路還是有我缺少的東西?類似dict的東西在c

感謝;)

+0

你能更具體嗎? '關聯兩個數組'意味着什麼。你在想如何使用結構? – 2011-12-23 08:54:24

+0

對不起,我想我的結構中有兩個等長的數組(例如鍵和值),並且通過查找我想要的鍵的索引,我會知道該值的索引... – Psyclops 2011-12-23 08:59:16

+1

如果它足以讓您有O(N)查找成本,那麼你有一個很好的解決方案。您可以對元素進行排序以將其改進爲O(logN)。你可能會發現不需要實現一個散列表(它更高效,但更難編碼)。 – 2011-12-23 09:02:16

回答

3

看看這個link。 這裏解釋瞭如何在c中創建一個哈希表。

2

我認爲你正在尋找一個HashTable。我只是googled for an example,但環顧一下,我確信你會找到一個滿足你的需求的實現示例。

2

蟒Python dict和C struct不同的野獸。

A struct可以被認爲是將相關變量分組在一起的一種方式,以便它們可以作爲單個單元傳遞。

A dict是從鍵到值的映射,其中鍵集在編譯時通常是不知道的。如果你需要在C中做類似的事情,最好的辦法是使用標準數據結構庫。這些已在過去進行過討論:Are there any open source C libraries with common data structures?

有幾種標準數據結構可以使您能夠將鍵映射到值。 A hash table是一個合理的默認選擇。

1

在SO中搜索標籤hastable或文本implementation in C,您會發現一些示例以及值得一讀的有趣問題和解決方案。

相關問題