i have a pile of data, which i need to access frequently and fast.
One entry consists of two unsigned ints, let`s call them source and destination.

One source can have several destinations, but this rarely ever happens.
Several sources can have the same destination - this happens more frequently, but still scarcely.

Once the data is set up, it rarely ever changes - yet it should be possible to add or remove entries.

I now need to find all sources for a given destination, or all destinations for a given source.
The question: which stl container to choose?

I have tried a multimap, using the source as key. This works good for finding all d for a given s, but is inefficient in the other direction.
Do you think it would be more efficient to have two multimaps, sorted respectively by source and destination?