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. 指定されたキーが辞書に存在しません
- 3. c#linquと辞書には、キーがprocesに存在するかどうかを確認できますか?
- 4. Python:別の辞書に存在しない場合、ある辞書からキーを削除する方法は?
- 5. VBScript辞書が存在するメソッドは常にTrueを返します
- 6. C++シェルフレームワークは存在しますか?
- 7. Web.configの問題 - 指定されたキーが辞書に存在しません
- 8. SolrNet - 指定されたキーが辞書に存在しません
- 9. "指定されたキーが辞書に存在しませんでした" nHibernate C#
- 10. リスト内に存在する辞書のキー値にアクセスする方法は?
- 11. 辞書を辞書に追加しますか?
- 12. Erlangの辞書に辞書を保存する
- 13. python - リストが存在する場合は辞書から削除する
- 14. C#辞書LINQ
- 15. ActionScript辞書C#
- 16. ソート辞書 - C#
- 17. C#辞書はHashSetの
- 18. C#には辞書のContainsAny()メソッドがありますか?
- 19. Java:String.FormatはC#のようにJavaに存在しますか?
- 20. label1は現在のコンテキストには存在しません:asp.net C#
- 21. グループディクショナリ辞書キー(C#)
- 22. 辞書にラムダを保存する
- 23. Java URIResolverの概念はC#と.NETに存在しますか?
- 24. C#lambdaはコンパイル時にのみ存在しますか?
- 25. C#でExcelに辞書を書く
- 26. VBSのQTPバージョンに辞書の辞書がありますか?
- 27. 辞書を辞書に追加すると、プログラムがクラッシュしますか?
- 28. OOPの辞書オブ辞書ですか?
- 29. DbSetにアクセスする際のエフォート(EF6)例外(指定されたキーが辞書に存在しません)
- 30. 差分b/w addObject:辞書とaddObject:[辞書コピー]はNSMutableArrayにありますか?
http://stackoverflow.com/questions/6118539/hashtable-as-part-of-standard-c-library – Avi