Keeping K around twice can be fairly expensive if it's something like a string. Some brief pondering hasn't come up with a better way to do it, but I'm sure one exists.
(I assume that since this is a limited-size map, the amount of space actually matters, but maybe we know that for all our users sizeof(V) >>> sizeof(K).)