2009/9/9 Steven Watanabe
Scott McMurray wrote:
2009/9/9 Steven Watanabe
: Nat Goodspeed wrote:
Um -- I'm under the impression that decrementing the iterator returned by end() is discouraged. There are containers for which that definitely would not work.
It should work for any container that supports bidirectional iterators.
...except std::vector, iirc.
The ability to decrement any bidirectional iterator except begin() is required by the standard. All Bidirectional iterators /must/ support this, including the iterators of std::vector. (See 24.1.4, Table 75)
Sorry, I didn't give enough context. My understanding is that Nat was referring to using "--container.end()" to get an iterator to the last element in a container, which works for every bidi container but vector. I see no reason why decrementing a normal lvalue iterator would be "discouraged", as as you say, it's a fundamental bidi iterator operation.