Hello
I want a collection to store a relationship N to M like so:

Item of type A                 Item of type B
A1                                    B1,B2,B3
A2                                    B4
A3                                    B1

and I would like a convenient way to get from a A instance to the list of B instances, and vice versa, from a given B instance to the list of A instances.

At runtime, the A objects are created first, then a list of B objects is created.
Later, B objects get modified asynchronously and that modification need to update the relevant A instances

what container to use?

boost::bimap< unordered_set<A*> ,  unordered_set<B*> >

?