I'm used to writing loops like this:
for (std::size_t index = 0; index < foo.size(); index++)
{
// Do stuff with foo[index].
}
But when I see iterator loops in others' code, they look like this:
for (Foo::Iterator iterator = foo.begin(); iterator != foo.end(); iterator++)
{
// Do stuff with *Iterator.
}
I find the iterator != foo.end()
to be offputting. It can also be dangerous if iterator
is incremented by more than one.
It seems more "correct" to use iterator < foo.end()
, but I never see that in real code. Why not?