>>binary_number->end( )
That might be the problem; end() returns an iterator that points to one past the last element of the sequence. However, I'm not familiar with the reverse() algorithm.
>>for( ; zeros >= 0 ; --zeros )
Not 100% sure, but you might want to use > instead of >=.
Other than that, I can't think of anything that would give you a runtime error.
**EDIT**
>>Run-Time Check Failure #3 - The variable 'a' is being used without being defined.
Sounds like a debugger feature or something to me. Have you event tried initializing the variable yet?