(который, в конце концов, упорядочен), проблема в том, что это займет больше, чем постоянная сложность

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

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.
}

Я нахожуiterator != foo.end() быть зачетным. Это также может быть опасно, еслиiterator увеличивается более чем на один.

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

Ответы на вопрос(2)

Ваш ответ на вопрос