2016-05-25 14 views
-1

std::multimap <bool life, int id, std::pair < x, y >>にはどのように挿入できますか?C++ std :: multimapに挿入するには?

これは、データのプレーヤーとiaを格納するために使用します。これはこれに最適なコンテナですか?

+7

'insert'を試しましたか? –

+3

'std :: multimap'の3番目のテンプレートパラメータはコンパレータです。私は、あなたが正確にやろうとしていることについては断りません。質問の説明とあなたが提供したコードのビットは私には意味をなさない。 – chris

+1

便利なドキュメントは、[cppreference](http://en.cppreference.com/w/cpp/container/multimap) –

答えて

3

まったくありません。次のように

マルチマップのシグネチャは次のとおりです。

template < class Key,         // multimap::key_type 
      class T,          // multimap::mapped_type 
      class Compare = less<Key>,     // multimap::key_compare 
      class Alloc = allocator<pair<const Key,T> > // multimap::allocator_type 
      > class multimap; 

あなたのマルチマップの使用が間違っています。

キーは、あなたが2つのノードだけ01(またはfalse´ and true`を)を使用することを意味しているboolです。したがって、挿入された各要素はいずれかの要素に含まれているため、実際には同じキーを持つ要素を登録しています。これは非効率的です。

は、intです。さて、どうしてあなたはboolintにマップしたいのですか?

そして最後にあなたの署名にエラー:pairではありませんが機能を比較したが、第三のテンプレート引数は、が機能を比較しなければなりません。空のままにしておくと、デフォルトでless<bool>boolのキーと選択したためです)。

関連する問題