問題タブ [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 投票する
3 に答える
29259 参照

c++ - pair pair as key of unordered_map issue

My code:

Erorr

Something I need to fix?

thanks

0 投票する
3 に答える
6202 参照

visual-studio - VisualStudioが'tr1/ unordered_mapを見つけられないのはなぜですか?

プロジェクトでgoogle-ctemplateを使用したい。ただし、基本ファイルを含めると、次のエラーが発生します(Visual Studio C ++ 2005の場合)。

unordered_map.hppはboost-directoryにあり、boost-directoryはVisualStudioのinclude-pathに設定されています。どうすればこの問題を解決できますか?

0 投票する
5 に答える
6940 参照

c++ - C ++STLunordered_mapイテレータの問題

上記のコードを見てください。私の問題は、FileMap::const_iteratorがどのように機能するかです。key(std :: wstring)とvalue(FileData)のコピーを作成しますか?それとも、キーと値へのポインタ/参照を保持しているだけですか?

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

c++ - 構造体内のTR1unordered_mapでハッシュ関数を定義する

これによると、次のようにTR1unordered_mapで等式関数を定義することができます。

同じようにハッシュ関数を定義することは可能ですか?

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

c++ - 私の静的マップは常に空です

次のように、ヘッダー ファイルで静的な順序付けされていないマップを宣言しました。

その同じヘッダー ファイルに、マップをいくつかの値で埋める関数があります。

後で私のプログラムで、別のクラス/関数内で、値の1つを読み取ろうとします:

しかし、マップは常に空です。コンソールへの出力は、初期化ルーチンから常に 4 になり、2 番目の cout からは 0 になります。静的マップはプログラム全体で永続的だと思っていたので、静的マップがどのように空になるかについて少し混乱しています。誰でも光を当てることができますか?

ありがとう

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

c++ - C++ メソッドをテンプレート引数として渡す方法

クラスがあるとしますX

としてstd::tr1::unordered_map<X, int, HashFn>渡したい場所を 作成したいと思います。独自のファンクター オブジェクトを宣言できることはわかっています。へのポインタを直接渡すことでこれを行う方法があるはずだと思います。X::hash()HashFnX::hash()

ある?

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

c++ - tr1/unordered_mapの組み込み型ハッシュ関数へのアクセス

クラステンプレートをいじって、unordered_mapクラスのカスタムハッシャーを作成したいと思います。そのドキュメントには、デフォルトのハッシュ関数が組み込み型に提供されていると記載されています。したがって、次のように宣言すると、

自動的にハッシャーが定義されます。

カスタムハッシュ関数が必要な場合にファンクターを提供する方法については、ここに良い例があります。

std::stringただし、への挿入/削除のキーとして使用したいメンバーを持つ複雑なクラスがある場合はどうなりunordered_mapますか?自分のハッシャーを書き直したくない。std::stringそのタイプに対してすでに書かれているものを活用したいと思います。

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

c++ - std::tr1::unordered_map が自作のハッシュマップよりも遅いのはなぜですか?

私は文字列を受け取り、それらを文字列 -> 整数ハッシュ マップに挿入することで、一意の文字列の出現回数をカウントする基本的なプログラムを作成しました。

ストレージには std::tr1::unordered_map を使用し、カスタム ハッシュ関数とカスタム等値関数用にテンプレート化します。キーの種類は、実際にchar*は too-slow ではなくですstd::string

次に、同じコードを変更して、非常に単純なハッシュ テーブル (実際には、ハッシュによってインデックス付けされた {key, value} 構造体の配列) を使用し、2 のべき乗のサイズと衝突の線形プローブを使用しました。プログラムは 33% 速くなりました。

tr1::unordered_map を使用していたときにハッシュ テーブルのサイズを事前に設定して、サイズが大きくならないようにし、まったく同じハッシュ ルーチンと比較ルーチンを使用していたことを考えると、tr1::unordered_map の動作が 50% 遅くなる理由は次のとおりです。想像できる最も基本的なハッシュマップと比較して?

ここで「単純」と話しているハッシュ マップ タイプのコードは次のとおりです。

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

c++ - 順序付けられていないマップのキーとしてのオブジェクト

ここでのキーは簡単な例であるため、クラスのオブジェクトを順序付けられていないマップに配置する際に問題が発生します。

私の問題は、iam tryinが2つの異なるオブジェクトを挿入して表示しようとすると、セグメンテーション違反が表示されることです。再びfind()を使用しようとすると、セグメンテーション違反も表示されます。unordered_mapが表示される理由を理解するのは非常に困難です。この動作。

どんな助けでも大歓迎です!! これは私のプロジェクトにとって大きな助けになるでしょう...

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

c++ - std::tr1::unordered_map での C++ の等価性

std::tr1::unordered_map が std::map に存在する等値 (==) 演算子を省略した理由はありますか?

これを実装する良い方法は何ですか? unordered_map::value_type の 2 つのセットを作成し、2 つの hash_maps からそれらを初期化してから、2 つのセットの等価性をチェックすることを考えています。