2012-04-05 69 views
3

我有一個bimap。我想檢查一下密鑰是否存在於我的bimap中。我怎樣才能做到這一點。這是我的bimap:Cpp - 檢查增強bimap中是否存在密鑰

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; 
      } 

我想檢查'Name'是否存在。

回答

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

非常感謝 – 2012-04-05 07:16:28

+1

find()函數在哪裏記錄?提升文檔是一團糟! – DBedrenko 2016-06-10 09:10:15

+0

find()函數屬於定義地圖類型時使用的集合類型。在這個例子中,它是'set_of',這是記錄[這裏](http://www.boost.org/doc/libs/release/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html)。 – 2016-06-10 09:16:02