Boost logo

Boost Users :

Subject: Re: [Boost-users] [bimap] Creating a bimap fom a std::map
From: Matias Capeletto (matias.capeletto_at_[hidden])
Date: 2009-11-25 17:49:38


On Wed, Nov 25, 2009 at 5:35 PM, Edward Diener <eldiener_at_[hidden]> wrote:
> Whether I go:
>
> bm.left.insert( m.begin(), m.end() );
>
> or
>
> bm.right.insert( m.begin(), m.end() );
>
> ,when both types are the same, is totally irrelevant to further use of the
> bimap. Is this not correct ?

No, it is not correct. A bimap is a mapping between two sets of
elements (named the left set, and the right set) that can be viewed as
a std map<L,R> or as a std map<R, L>. In this particular example both
sets hold elements of the same type but which one is the left and
which one is the right matters. Imagine that you need a mapping
between names and surnames
(bimap<tagged<string,name>,tagged<string,surname> >), and you want to
insert from a std::map<string,string> that maps from surnames to
names.
I hope it is more clear now.
Regards
Matias


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net