Я считаю, что это должно быть самым быстрым:
return *reinterpret_cast<float*>(&bytes[0]);
Я думаю, что это технически неопределенное поведение. Но большинство компиляторов должны выводить то, что вы ожидаете здесь. & Bytes [0] гарантированно будет работать, потому что std :: vector гарантированно будет смежным.