使用Boost库中的bimap实现关联容器功能
C++中STL中提供了常用的关联容器,如set、map、multiset、multimap等。Boost库中的bimap提供了一种关联容器,它能够提供双向映射的功能,即一个key可以对应到多个value,而一个value可以对应到多个key。
我们来看一个简单的示例代码:
#include <boost/bimap.hpp>
#include <string>
#include <iostream>
int main()
{
typedef boost::bimap<std::string, int> bm_type;
bm_type bm;
bm.insert(bm_type::value_type("one", 1));
bm.insert(bm_type::value_type("two", 2));
// 通过左侧查询右侧
std::cout << bm.left.at("one") << std::endl; // 输出为1
// 通过右侧查询左侧
std::cout << bm.right.at(2) << std::endl; // 输出为"two"
return 0;
}
在这个示例中,我们定义了一个<