在C中,你可以創建一個字典嗎?我來自Objective-C背景,所以我想知道是否有類似NSDictionary
的東西。C中是否存在字典?
回答
您可以使用C語言創建任何您想要的東西。您只需要大部分語言支持。
沒有OOP和模板,很難實現一個真正通用,易於使用的散列表或平衡樹,因此值得在運行時庫中提供語言。這就是說,你可以始終實現你自己的,或者只是使用C++(請參閱unordered_map或map)。
「Performant」並不是一個單詞,儘管它會成爲一個詞,因爲人們繼續使用它。我認爲你的意思是數據結構/功能必須是有效的。爲什麼你認爲散列表和平衡樹的C實現會比OOP C++實現效率低? – 2012-02-23 04:58:51
(沒有得到完成我的評論 - 得到了可怕的「每5秒只編輯」的消息!) 我寫了一個通用的散列表包在C中,它易於使用和快速 - 表80,000個遙測點的平均比較數略大於1,1個標準偏差內的點仍低於2個比較,2個標準差內的點略高於2個比較。 – 2012-02-23 05:15:03
@ranko:哼?你建立一個存儲空指針的樹/哈希,並接受一個具有int cmp(void *,void *)原型的比較函數;並返回-1/0/1。這已經完成了多年,易於使用,並且在C中創建了通用樹/散列(例如,參見標準C庫bsearch API)。 – tbert 2012-02-23 05:42:21
Posix確實有一個有限的散列表 - 見hcreate(), hsearch() and hdestroy(),可以由C程序使用。
這個限制的討論出現在這個stackoverflow question。
GNU庫增加了'hcreate_r()','hsearch_r()'和'hdestroy_r()',它們允許程序中有多個散列表。 – 2012-02-23 04:49:28
- 1. 檢查字典列表中是否存在字典?
- 2. 在Python中查找字符串中是否存在字典值?
- 3. 檢查字典中是否存在字未找到任何字
- 4. 詞典:鍵是否存在
- 5. 檢查字典值是否存在於Python中的另一個字典中
- 6. c#檢查字典中是否存在關鍵字,然後傳遞其值
- 7. 如何確定字典中是否存在非空字符串?
- 8. C#字典鍵不存在
- 9. C#字典 - 給定的關鍵字不存在於字典中
- 10. 如何檢查特定字典是否是c#中的通用字典類型?
- 11. 檢查列表中的項目是否存在於字典中
- 12. 如何檢查字典在iPhone中是否存在?
- 13. 如何檢查字典中的字典的關鍵存在C#
- 14. 檢查單詞是否在字典中
- 15. 在php中是否有字典?
- 16. 字典未知大小 - 查找單詞是否在字典中
- 17. 檢查JSON字典是否爲空並存儲在列表中
- 18. Swift - 檢查數組是否存在於字典中
- 19. 檢查字典列表中是否存在值?
- 20. 檢查字典數組中是否存在值swift 3
- 21. Ansible檢查字典列表中是否存在鍵/值對
- 22. 檢查存儲在字典中的參數是否有效
- 23. 字典中用於檢查密鑰是否存在的邏輯
- 24. Python - 檢查字典中的列表項是否存在
- 25. 檢查VBA中是否存在嵌套字典鍵
- 26. 如何檢查Python字典中是否存在多個鍵?
- 27. Python:鍵是否存在於字典中(Python 3.1)
- 28. 字典列表中是否存在真值?
- 29. 是否可以在C++/CLI環境中創建靜態字典?
- 30. C#在字典中添加字典
查看http://stackoverflow.com/questions/6118539/hashtable-as-part-of-standard-c-library – Avi 2012-02-23 00:18:01