[解決済み] C言語でHashMapを実装する【終了しました
2022-03-01 11:46:45
質問
C++のSTLにあるようなHashmapをCで一から作るにはどうしたらいいのでしょうか?
どのようなパラメータが考慮され、どのようにハッシュマップをテストするのでしょうか?例えば、ハッシュマップが完成したと言う前に実行するベンチマークテストはどのようなものでしょうか?
どのように解決するのですか?
基本的なことが分かっていれば、それほど難しくはないはずです。
一般的には、キーと値を含む "buckets" という配列を作成し、オプションでポインタを追加してリンクリストを作成します。
キーでハッシュテーブルにアクセスする場合、カスタムハッシュ関数でキーを処理し、整数を返す。そして、その結果のモジュラスが、配列のインデックスやバケットの位置となる。そして、ハッシュ化されていないキーと保存されているキーを照合し、一致すれば正しい場所を見つけたことになります。
そうでない場合は、quot;collision" が発生し、リンクリストを這い回り、一致するまでキーを比較する必要があります。(衝突のためにリンクリストの代わりにバイナリツリーを使用する実装があることに注意)。
この高速なハッシュテーブルの実装をチェックしてみてください。
関連
-
[解決済み】MB/sとMiB/sを計算する方法は?
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] ハッシュマップのキーを指定して、値を更新するには?
-
[解決済み] Java Hashmap。値からキーを取得する方法は?
-
[解決済み] C# Java HashMap相当
-
[解決済み】リンクリストのループを検出する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】valgrind - サイズ8のブロックが割り当てられた後、アドレス ---- が0バイトになる。
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み] テスト
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開