A map of vectors would fix the problem laserlight mentioned.
A map or multimap is designed to be accessed via keys and not by values. Why would you ever need to key off of a value in a map?Code:class DontDoThis
{
public:
typedef std::map<std::string,IWhatever *> objectMap;
typedef objectMap::iterator objectMapIter;
typedef std::vector<objectMapIter> mapIterVector;
typedef keyVector::iterator mapIterVectorIter;
typedef std::map<IWhatever *,mapIterVector> reverseLookupMap;
typedef reverseLookupMap::iterator reverseLookupMapIter;
...
...
private:
objectMap m_objectMap;
reverseLookUpMap m_reverseLookupMap;
...
...
};