Cでは、辞書を作成できますか?私はObjective-Cの背景から来ていますので、NSDictionary
に似たものがあるかどうかを知りたいと思います。辞書はCに存在しますか?
答えて
Cで必要なものを作成することができます。ほとんどの場合、母国語のサポートはありません。
OOPとテンプレートがなければ、実際には一般的で使いやすいとというパフォーマンスを持つハッシュテーブルまたはバランスツリーを実装するのは難しいでしょう。したがって、付属のランタイムライブラリに入る価値があります。言語。
これは、あなた自身で実装することも、C++を使うこともできます(unordered_mapまたはmapを参照)。
「Performant」は実際には言葉ではありませんが、人々はそれを使い続けているため、1つになります。私はデータ構造/機能が効率的でなければならないという意味でそれを意味していると思います。なぜ、Cのハッシュテーブルやバランスのとれたツリーの実装は、OOP C++の実装よりも効率が悪いと思いますか? –
(私のコメントを完成させられなかった - 恐ろしい "5秒ごとに編集する"というメッセージを得た!) 使いやすい高速のCで汎用ハッシュテーブルパッケージを書いた80,000テレメトリポイントの平均比較数は1をわずかに上回り、1標準偏差内のポイントは2比較未満であり、2標準偏差内のポイントは2比較をわずかに上回っていた。 –
@ranko:ハァッか。 voidポインタを格納し、int cmp(void *、void *)のプロトタイプで比較関数を受け入れるツリー/ハッシュを構築します。 -1/0/1を返します。これは長年にわたって行われてきており、使いやすく、Cで汎用のツリー/ハッシュを作成します(標準のCライブラリbsearch APIなどを参照)。 – tbert
Posixには限定されたハッシュテーブルがあります(Cプログラムで使用できるhcreate(), hsearch() and hdestroy()を参照)。
この制限については、stackoverflow questionに記載されています。
GNUライブラリは 'hcreate_r()'、 'hsearch_r()'、 'hdestroy_r()'を追加しています。 –
- 1. c#mongoDb 2.0が辞書に存在しない
- 2. C#Dictionary - 指定されたキーが辞書に存在しません
- 3. c#linquと辞書には、キーがprocesに存在するかどうかを確認できますか?
- 4. 辞書をテキストファイルに保存する(C#)
- 5. 指定されたキーが辞書に存在しません
- 6. Python:別の辞書に存在しない場合、ある辞書からキーを削除する方法は?
- 7. スワイプ式、空の辞書、または存在しない辞書が配列にある - 確実にゼロ?
- 8. VBScript辞書が存在するメソッドは常にTrueを返します
- 9. ディストリビューション 'rhel7.2'は、私たちの辞書には存在しません
- 10. キーが存在するか存在しないときに辞書に要素を追加する方法
- 11. 辞書をPythonで辞書に保存
- 12. 辞書が存在しない場合は、
- 13. 辞書キーが存在するかどうかのテストは常にFalseです。
- 14. C++シェルフレームワークは存在しますか?
- 15. C#辞書内の辞書
- 16. C#キーが存在しない場合のセッター付きのカスタム辞書型
- 17. 2つの辞書を比較し、1つの辞書内に存在するキー/値ペアを削除する
- 18. 関数は辞書を辞書として返しますか?
- 19. "指定されたキーが辞書に存在しませんでした" nHibernate C#
- 20. SolrNet - 指定されたキーが辞書に存在しません
- 21. SpecFlow - 指定されたキーが辞書に存在しません
- 22. Web.configの問題 - 指定されたキーが辞書に存在しません
- 23. EF6 with MySQL。指定されたキーが辞書に存在しません
- 24. リスト内に存在する辞書のキー値にアクセスする方法は?
- 25. 別のpythonファイルに存在するマルチレベル辞書を更新するには?
- 26. python - リストが存在する場合は辞書から削除する
- 27. 辞書を辞書に追加しますか?
- 28. csvに辞書の辞書を印刷しますか?
- 29. C#タプル辞書
- 30. ActionScript辞書C#
http://stackoverflow.com/questions/6118539/hashtable-as-part-of-standard-c-library – Avi