Your problem is that you're setting the iterator to a reference to a variable rather than an iterator.
at() and [] return references to individual values in your vector.
begin(), end(), rbegin(), and rend() return iterators that you can adjust if you need to with the +, -, +=, -=, ++, and -- operators. You probably want begin().