
On Wed, Nov 25, 2009 at 5:35 PM, Edward Diener <eldiener@tropicsoft.com> 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