問題タブ [unordered-map]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
15506 参照

c++ - std :: tr1::unordered_mapがわかりません

文字列を介して特定のオブジェクトにインデックスを付ける連想コンテナが必要ですが、挿入の順序も保持されるため、名前で特定のオブジェクトを検索するか、オブジェクトを繰り返し処理して、挿入したのと同じ順序でオブジェクトを取得できます彼ら。

リンクリストとハッシュマップのこのハイブリッドはうまくいくはずだと思いますstd::tr1::unordered_mapが、それがそのように機能していると思って使用しようとする前に、私は説明しましたが、そうではありませんでした。それで、誰かが私にその意味と振る舞いを説明できunordered_mapますか?


@wesc:std :: mapはSTLによって実装されていると確信していますが、std :: hash_mapはSTLに含まれていないと確信しています(古いバージョンのVisual Studioではstdextという名前空間に配置されていると思います)。

@cristopher:ですから、私が正しく理解すれば、違いは実装(したがってパフォーマンス)にあり、外部での動作にはありません。

0 投票する
2 に答える
2886 参照

c++ - boost :: unordered_mapを作成するときに、バケットの最小数を指定します

boost::unordered_mapを使用していくつかの値をキャッシュしようとしています。コンストラクターでバケットの最小数を指定しようとしています。

しかし、プログラムの最後にunordered_mapに関する情報を表示すると、次のようになります。

g ++:

vc ++:

バケットの最小数を指定するにはどうすればよいですか?

0 投票する
4 に答える
16098 参照

c++ - long long のペアのハッシュ関数?

のペアを にマップする必要がありますがlong longdouble使用するハッシュ関数がわかりません。各ペアは、任意の 2 つの数字で構成されますが、実際には、通常はその前後の数字になります0(100ただし、これは保証されません)。

これtr1::unordered_mapドキュメントです。私はこのように始めました:

一般に、どのハッシュ関数を使用すればよいかわかりません。優れた汎用ハッシュ関数とは?

0 投票する
1 に答える
2330 参照

c++ - boost::unordered_map で boost::pool_allocator を使用する構文は何ですか?

私はboost::poolを使って、私が扱っているもののより高速なアロケータであるかどうかを試していますが、boost::unordered_map:でそれを使用する方法がわかりません:

コード スニペットを次に示します。

これが私が得るコンパイルエラーです:

エラー 3 エラー C2064: 用語は、2 つの引数を受け取る関数として評価されません C:\Program Files (x86)\boost\boost_1_38\boost\unordered\detail\hash_table_impl.hpp 2048

"theMap[1] = 2" のようにマップの使用をコメントアウトすると、コンパイル エラーはなくなります。

0 投票する
2 に答える
4029 参照

c++ - Boost.Intrusive と unordered_map

邪魔な unordered_map を使用しようとしています。何らかの理由で、ライブラリには unordered_set しかありません。侵入型のハッシュテーブルもありますが、同じ機能を持っているかどうかはわかりません。また、同じインターフェースもありません。
私は間違っていて、unordered_map リンクを見逃しましたか?
そうでない場合、実装に役立つチュートリアルはありますか?

0 投票する
1 に答える
41392 参照

c++ - hash_mapとunordered_mapの違いは?

私は最近、C++でのハッシュマップの実装がと呼ばれることを発見しましたunordered_map

彼らが単に使用していない理由を調べたところ、その解決策hash_mapの実装には明らかに互換性の問題があることがわかりました(詳細はこちら)。hash_mapunordered_map

そのウィキページはそれ以上の情報を提供していないので、誰かがそれに関する問題のいくつかを知っているかどうか疑問に思いhash_mapますunordered_map

0 投票する
2 に答える
8542 参照

c++ - 基本的な質問: unordered_maps 内のオブジェクトへのポインター (C++)

私は C++ プログラミングの初心者であり、事前の知識をあまり前提としない回答をいただければ幸いです。

ここでの提案のおかげで、順序付けられていないマップを作成しました。

このマップのデータは、クラス Strain のインスタンスへのポインターです。これらのインスタンスが作成されるとすぐに、それらへのポインターを作成し、これらのポインターをハッシュ テーブル (hmap StrainTable) と別のベクトル (vector< Strain *> liveStrains) に追加します。たとえば、次のようになります。

クラス Strain のインスタンスは決して削除されません。また、それらへのポインタがひずみテーブルから削除されることもありません。vector< Strain * > liveStrains と vector< Strain * > deadStrains の間でポインターが時々移動しますが、一度ひずみテーブルに置かれると、それらはひずみテーブルにとどまります。

これはコーシャですか?基になるインスタンスが破棄されない限り、それらに追加されたポインターはそのまま残りますか?

たとえば、最初のエントリに、

しばらくすると、strainTable のポインターがガベージを指していることがわかりました。

0 投票する
2 に答える
2736 参照

c++ - unordered_map (C++) の「エラー: 読み取り専用の場所の割り当て」

intキーとvector< vector< int >>データを含む厄介なハッシュ テーブル (具体的には、unordered_map) があります。この int の 2 次元ベクトルの要素を定期的に更新する必要があります。私ができないはずの本質的な理由はありませんよね?私が切り替えた新しい g++ コンパイラは、以下に指定された行に読み取り専用の場所が割り当てられていることを訴えます。

私は C++ を初めて使用するので、あまり明白なことはありません。助けてくれてありがとう。


ティムの提案に従って

上記のコードの関連部分を次のように置き換えました。

このコードはエラーなしでコンパイルされ、正常に動作するように見えます。Tim のように、なぜこの修正が機能するのか、私にはまだよくわかりません。このエラーは、以前は gcc バージョン 4.1.2 20080704 (Red Hat 4.1.2-44) で表示されていましたが、gcc バージョン 4.0.1 (Apple Inc. ビルド 5465) では表示されませんでした。締め切りが迫っていないときは、エラーをより注意深く分析しようと思います!