Похоже, карта дает вам указатель на вектор объектов. Если вы попытаетесь использовать карту через
mymap[MY_ENUM]->push_back(whatever);
перед инициализацией вы получите ошибку сегмента. Вам либо нужно сначала инициализировать вектор
mymap[MY_ENUM] = new vector<SomeObject*>;
или, намного лучше, просто сделайте карту простой вектором
map <someEnum, vector<SomeObject*> > mymap;
При первом вызове mymap[MY_ENUM]
вектор будет инициализирован по умолчанию (с нулевым размером). Проблема в том, что вы пытаетесь использовать записи вектора перед его увеличением, например,
mymap[MY_ENUM][2] = whatever;
Вам все еще нужно использовать push_back
или resize
, или что-то, что дает вам место.