Почему с итераторами используется «! =» Вместо «<»?

Я привык писать такие циклы:

for (std::size_t index = 0; index < foo.size(); index++)
{
    // Do stuff with foo[index].
}

Но когда я вижу циклы итератора в чужом коде, они выглядят так:

for (Foo::Iterator iterator = foo.begin(); iterator != foo.end(); iterator++)
{
    // Do stuff with *Iterator.
}

Я считаю, что итератор ! = Foo.end () не работает. Также может быть опасно, если итератор увеличивается более чем на единицу.

Кажется более «правильным» использовать итератор , но я никогда не вижу этого в реальном коде. Почему бы и нет?

49
задан smci 30 January 2018 в 14:18
поделиться