2017-05-15 9 views
0

に私はどのようにマップを整理<設定<マルチセット<int>>、int型> C++エラーC2338

map<set<multiset<int>>,int> mymap; 

を宣言したいが、MSVC 2015は私にこのエラーを与えることができます。

エラーC2338:C++標準をこのタイプのハッシュは提供されません。

比較演算子はどのように入力できますか?おそらく、これはここに欠けているのでしょうか?要求ごととして

+2

これは実際の宣言ではありません。エラーと一致しません。 – DeiDei

+1

実際には 'unordered_something'またはmsvcのエラーメッセージが壊れています –

+0

反対側では、本当にそのようなものが欲しいですか?それはどのような構造ですか? – DeiDei

答えて

1

は、おそらくあなたがそうのようなmymapを作成しようとしていた。

unordered_map<set<multiset<int>>,int> mymap; 

unordered_mapためのキータイプは、ハッシュ関数を定義していないset<multiset<int>>です。しかし、それはoperator<を定義します。

投稿に記載されている定義は問題ありませんが、おそらくunordered_mapを使用していました。

P.S. mapのキータイプとしてset<multiset<int>>を使用すると、正しくは感じられません。 set::operator<はO(n)時間の複雑さを有する。 multiset::operator<は同じです。しかし、あなたがパフォーマンスについて心配していなければ、それは問題ありません。

関連する問題