That's a general case. For rotation around a world axis, it's faster/easier:
vector = Quaternion.Euler(0, -45, 0) * vector;
For (1,0,0), this results in (sqrt(.5), 0, sqrt(.5)), not (.5,0,.5), by the way. The length of the rotated vector stays constant. To achieve a squared hypotenuse of 1, you add .5, 0, and .5, not .25, 0, and .25, which would shorten your vector.
That operation is dependent on the order.
rotatedVector = Quaternion * vector OK
rotatedVector = vector * Quaternion won´t works and will launch a compiler error