There's no better or worse it's completly depends one your code design and what fits your needs best.
The advantages of a std::map over a std::vector is that the map isn't fixed to linearity (i.e. 0, 1, 2, 3, ...) but you can insert and remove elements whenever, where ever you want without creating any 'holes'. Additionally you can choose a key as you want (e.g. instead of int you can use std::string).
So that 'list' shows that a std::map has some nice features you maybe want to use, but if your game can deal better with a std:vector go with that one.
Additionally there's the std::unordered_map (needs a compiler that supports this part of C++11), which doesn't sort the objects after the keys and thus guarantees an insert and lookup of O(1) = constant (i.e. that is good!).