誰でもCコンテナライブラリを知っていますか? C++ STLとほぼ同じ方法で、リンクリスト、配列、ハッシュテーブルなどの標準実装を提供するものを探しています。主な懸念事項は次のとおりです。
地図/辞書コンテナのC実装を探しているときにSGLIBに出会いました。残念ながら、地図はありませんが、質問したコンテナが含まれているようです。私はそれがどれほど良いかわからない。
Sglib は、優れた汎用データ構造ライブラリです。ライブラリは現在、次の汎用実装を提供します。
とても速いです。そのglibの高速化。標準テンプレートライブラリに触発されています。 ここからダウンロード
別の解決策は、 魅力的なカオスソフトウェア です。 Cマクロライブラリ:
kbtree.h:Cの効率的なBツリーライブラリ.
khash.h:Cの高速で軽量なハッシュテーブルライブラリ.
kvec.h:Cの単純なベクトルコンテナー.
Kulesh Shanmugasundaram は、一般的なLinuxカーネルリンクリストと、Linuxカーネルリンクリストに基づく一般的なハッシュテーブルを表示します。
Sglibと魅力的なカオスソフトウェアとLinuxカーネルリンクリストは、Cマクロライブラリです。 void*
を使用してCで汎用コンテナを実装するのは効率が悪い場合があります。 CマクロはC++テンプレートを模倣し、C++テンプレートと同じくらい効率的です。
チャックファルコナー には、C++インターフェイスを含むCで記述された適切なハッシュライブラリがあります。ダウンロードするには、Webページのhashlib.Zipをクリックしてください。
Ben Pfaff には非常に優れた、非常によく文書化されたバイナリおよびバランスツリーライブラリ、 GNU libavl があり、バイナリ検索ツリー、AVLツリー、赤黒を含むほとんどの主要なツリー構造を実装しますツリーとそれぞれのスレッドバージョン。
libavlはLGPL(バージョン2.0.3以降)でライセンスされており、hashlibはGPLです。
前者は言語で直接サポートされ、後者はライブラリを保証せずに実装するのに十分なほど一般的であるため、配列とリンクリストに関する限り、あなたが何を探しているのか分かりません。
Cclはどうですか?これはCのコンテナライブラリです。おそらく最適でしょう。 https://code.google.com/p/ccl/ を確認できます。楽しめ。
Hansonの「C Interface and Implementations」の本から成長しているライブラリを使用しています。彼のソースは、でダウンロード可能です
すべてが抽象データ型です。リスト、セット、テーブル(マップ)があります。
私が聞いたことがある(しかし決して使ったことがない)もののいくつかは
これは、ほとんどのコンテナといくつかのアルゴリズムをカバーしているようです。また、ライセンスはありません。すべてのヘッダーに含まれる-「コードは制限なく使用できます。」 http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13867&lngWId=
#include "queue.h"
単一リンクリスト、単一リンクテールキュー、リスト、テールキューの実装へのアクセスを取得します。
D. J. Bernstein( http://cr.yp.to/djbdns.html )による任意のオブジェクトをメモリに保存するための汎用キャッシュが、クリーンでシンプル、かつ超高速であることがわかりました。 djdns tarballでcache.hおよびcache.cを検索します。