2012-04-05 33 views
3

私はバイマップを持っています。私はキーが私のバイマップに存在するかどうかチェックしたい。どうやってやるの。私のbimapはここにあります:Cpp - ブーストビーマップにキーが存在するか確認してください。

namespace bimap 
      { 

       struct Name{}; 
       struct ID{}; 

       typedef 
        boost::bimaps::bimap< 
         boost::bimaps::set_of< 
          boost::bimaps::tagged< 
           unsigned short 
           , ID 
          > 
         >, 

         boost::bimaps::set_of< 
           boost::bimaps::tagged< 
           std::string 
           , Name 
          > 
         > 
        > 
        name_index_bimap; 
      } 

「名前」が存在するかどうかをチェックします。

答えて

6

これは、this exampleで非常に明確に説明されています。あなたの場合は次のようになります:

name_index_map your_map; 
name_index_map::right_const_iterator it = your_map.by<Name>().find("some name"); 
if(it == your_map.right.end()) { 
    // name does not exists 
} 
+0

ありがとうございます –

+1

'find()'関数はどこに文書化されていますか?ブーストのドキュメントは混乱しています! – DBedrenko

+0

'find()'関数は、マップタイプを定義するときに使用されるコレクションタイプに属します。この例では、それは 'set_of'です。[here](http://www.boost.org/doc/libs/release/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html)に記載されています。 –

関連する問題