Use stl reverse_copy(), fill(), copy()