Boost.Bimap is a bidirectional maps library for C++. With Boost.Bimap you can
create associative containers in which both types can be used as key. A bimap<X,Y> can be thought of as a combination of a
std::map<X,Y>
and a std::map<Y,X>.
The learning curve of bimap is almost flat if you know how to use standard
containers. A great deal of effort has been put into mapping the naming scheme
of the STL in Boost.Bimap. The library is designed to match the common STL
containers.

The design of Boost.Bimap interface follows the standard template library.
It has been strongly influenced by Joaquin Lopez Muñoz's Boost.MultiIndex
library (the heart of bimaps) and codeproject::bimap library.