2012-07-12 6 views
6

私はmultimap<key_type,value_type>を持っています。特定のキーがたかだか1回だけマップに表示されるかどうかを知りたいと思います。マルチマップで特定のキーが一意であるかどうかを確認するにはどうすればよいですか?

私はkeyを含む範囲の開始と終了の反復子を見つけるために、multimap.equal_range(key)を呼び出すことができますが、私はrange.firstrange.secondの間に一つだけの要素があるかどうかを知りたい知っています。

の値をインクリメントしてrange.endと等しいかどうかを確認するよりも良い方法はありますか? multimap::iteratorは双方向であるため、インクリメントを元に戻すことはあまりお粗末ではありませんが、それを行うことは賢明ではありません。

答えて

7

std::multimap::count(key) == 1かどうかを確認できますか?

+0

ああ、「カウント」のオーバーロードは見られませんでした。完璧。私はそれが明日に働いていることを確認し、答えとしてマークします。 –

+0

@LarryOsterman "キー"は引用符で囲まなければなりませんか? 'key'は変数である可能性があるので、引用符を付けずに好きでした。 @ナワズ良い参照サイトのリンクをありがとう –

+0

それはない - これは私の悪い、私の場合は、キーは文字列と私は間隔です。私は元に戻す。 –