11

重複の可能性:
Container Class / Library for C

C よりも C++ を使用する主な理由の 1 つは、STL が提供する非常に便利なコンテナーです。ただし、純粋な C でコードを記述し、すべてのコンテナーを最初から作成する必要がない場合、どのような代替手段がありますか?

私が聞いたことがある(しかし使用したことのない)もののいくつかは

  • ギブ
  • iMatix 標準関数ライブラリ
  • Linux カーネル ヘッダーからの異なる要素 (例: list )

純粋な C (Ansi またはその他) のコンテナーに関する意見および/または経験は大歓迎です。

4

2 に答える 2

3

私が GLib をお勧めするのは、優れた機能セットがあり、比較的成熟しており、安定しており、移植性があり、広く使用されているからです。

于 2011-05-20T16:58:39.400 に答える
0

あなた、またはライブラリ作成者は、コンテナーなどを別の型に使用するたびに作成できます。定義を巨大なマクロに入れる可能性があります。またはvoid *、コンテナーに使用して、型の安全性と場合によってはパフォーマンスのすべての希望を失う可能性があります。(C のqsort関数は、C++ のテンプレートよりも大幅に効率が低下する可能性がsortあります。) C で C++ コンテナー、反復子、およびアルゴリズムに相当するものを取得する方法はありません。

私は Glib についてあまり知りません。また、Linux カーネル ヘッダーからの異種要素への言及は少しあいまいです。あなたが言及した Linux のリストは、おそらくあなたが得られる典型的なものです: 型安全性がなく、データ型ごとに異なる名前が付けられる一連の適切に作成された関数です。iMatix をざっと見ただけでは、コンテナーは明らかになりませんでした。

于 2011-05-20T17:14:00.600 に答える