You can use std::vector and keep the correct order of the keyframes.
Assuming that the keyframes are sorted by time in the vector you can then extract the
relevant keyframe with std::lower_bound
or std::binary_search
in logarithmic time.
std::map
internally keeps the elements sorted by the key
following a strict weak ordering criterion. So, if you use time as the key, you
will keep the correct order of the keyframes.
Personally, I would use std::vector.