-1

マップを使用してC ++で使用したように、Cでキーと値を妨害する必要があります。

一意のキーと値を c のストアに格納する最も簡単な例を共有してください。キーは任意の文字列で、値は文字列になります。

ありがとう

4

1 に答える 1

7

ハッシュ マップの作成には少し手間がかかりますが、間違いなく興味深い作業です。

ハッシュ マップを作成する一般的な方法は、キーと値を含むバケットと呼ばれる配列を作成することです。ただし、この構造では衝突を処理できません。ハッシュ関数によって異なるキーが同じ値に割り当てられると、2 つの値の間で衝突が発生する可能性があります。

この問題に対処するために、3 番目のフィールド (通常はポインター) がバケットに追加されます。衝突が発生すると、新しい値が 3 番目のフィールド (通常はリンク リストまたはバイナリ ツリー) が指すデータ構造に追加されます。衝突を解決する方法の詳細については、このリンクを参照してください。

上記のハッシュ マップ構造の例 (インデックス 153 での衝突に注意してください):ハッシュマップ構造

ハッシュ テーブルにアクセスするには、配列インデックスの場所を識別する整数を返すカスタム ハッシュ関数がキーに適用されます。最後に、要素へのアクセスに使用されるキーと、ハッシュ関数によって返されるインデックスで配列に格納されているキーが一致するかどうかを確認します。もしそうなら、あなたは正しい要素を見つけたことになります。

これは単なる例です。ハッシュ マップを実装するさまざまな方法を見つけることができます。

また、この質問はすでにここで尋ねられています。

于 2013-08-05T07:04:29.203 に答える