-1
std::multimap <bool life, int id, std::pair < x, y >>
にはどのように挿入できますか?C++ std :: multimapに挿入するには?
これは、データのプレーヤーとiaを格納するために使用します。これはこれに最適なコンテナですか?
std::multimap <bool life, int id, std::pair < x, y >>
にはどのように挿入できますか?C++ std :: multimapに挿入するには?
これは、データのプレーヤーとiaを格納するために使用します。これはこれに最適なコンテナですか?
まったくありません。次のように
マルチマップのシグネチャは次のとおりです。
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つのノードだけ0
と1
(またはfalse´ and
true`を)を使用することを意味しているbool
です。したがって、挿入された各要素はいずれかの要素に含まれているため、実際には同じキーを持つ要素を登録しています。これは非効率的です。
値は、int
です。さて、どうしてあなたはbool
をint
にマップしたいのですか?
そして最後にあなたの署名にエラー:pair
ではありませんが機能を比較したが、第三のテンプレート引数は、が機能を比較しなければなりません。空のままにしておくと、デフォルトでless<bool>
(bool
をのキーと選択したためです)。
'insert'を試しましたか? –
'std :: multimap'の3番目のテンプレートパラメータはコンパレータです。私は、あなたが正確にやろうとしていることについては断りません。質問の説明とあなたが提供したコードのビットは私には意味をなさない。 – chris
便利なドキュメントは、[cppreference](http://en.cppreference.com/w/cpp/container/multimap) –