the loop can not be a avoided since the data in your complex_vector
is interleaved
re0 im0 re1 im1 re2 im2 ... reN imN
and your target rep is non interleaved
re0 re1 re2 ... reN
im0 im1 im2 ... imN
so the copying has to be done in any way. how ever you may write the code in a more compact form using some for_each magic but in my opinion this only makes the code more difficult to understand.
edit:
then using some more sophisticated Matrix classes (eg in OpenCV cv::Mat_) this copying can be avoided by using same data buffer but modifying the step size. but this of course comes at the cost of slower element access.