繰り返し要素のすべてのキーにアクセスする場合はbimap
にします。私はいくつかのサンプルコードを持っていますbimapで繰り返される要素のすべてのキーを見つける
#include <string>
#include <iostream>
#include <utility>
#include <boost/bimap.hpp>
#include <boost/bimap/set_of.hpp>
#include <boost/bimap/multiset_of.hpp>
namespace bimaps = boost::bimaps;
typedef boost::bimap<bimaps::set_of<unsigned long int>,
bimaps::multiset_of<unsigned long int > > bimap_reference;
typedef bimap_reference::value_type position;
bimap_reference numbers;
int main()
{
numbers.insert(position(123456, 100000));
numbers.insert(position(234567, 80000));
numbers.insert(position(345678, 100000));
numbers.insert(position(456789, 80000));
auto it = numbers.right.find(100000);
std::cout<<"numbers:"<<it->first<<"<->"<<it->second<<std::endl;
return 0;
}
上記のコードでは、私は右側に要素を繰り返しています。上記のコードは、私に要素100000
、i、eの123456 <--> 100000
の最初のキーを与えます。しかし、要素100000
のエントリがもう1つあります。繰り返し要素のすべてのキーにアクセスする方法(要素は、左側に一意のキーで複数回存在する可能性があります)。
あなたの答えをありがとうが、それは最初の場所だけを与えます。 http://cpp.sh/8j74i – AwaitedOne
上記のコードで '100000' i、e' 123456 <--> 100000'と '345678 <--> 100000'の両方のキーを取得する必要があります。これは' 123456 <--> 100000'です。最初の場所。 – AwaitedOne
いいえ、オンラインコードの例に重複はありません。あなたはタイプミスがあります。タイプミスを修正すると、両方の場所が表示されます。 – acraig5075