#include<iostream>
#include<boost/array.hpp>
#include<boost/dynamic_bitset.hpp>
#include<boost/utility.hpp>
#include<boost/unordered_map.hpp>
#include<boost/unordered_set.hpp>
#include<boost/bimap.hpp>
using namespace std;
using namespace boost;
int main(){
typedef boost::bimap< int, std::string > bm_type;
bm_type bm;
bm.insert(bm_type::value_type(1,"hello"));
bm.left.insert(make_pair(2,"world"));
bm.right.insert(make_pair("nihao",3));
for(bm_type::const_iterator it=bm.begin();
it!=bm.end();it++){
cout<<it->left<<" "<<it->right<<endl;
}
system("pause");
return 0;
}
上面根据左右来区分
下面一种根据标签来定义:
//template<class Type,class Tag>
//struct tagged{
// typedef Type value_type;
// typedef Tag tag;
//};
int main(){
typedef boost::bimap< int, std::string > bm_type;
bimap<tagged<int,struct id>,tagged<string,struct name> > bm;
bm.by<id>().insert(make_pair(1,"hello"));
system("pause");
return 0;
}
在vs2010下失败了。