Зачем использовать итераторы?В чем смысл итераторов?
Например, если у меня есть такой код:
for (int i = 0; i < vec.size(); i++)
cout << vec[i];
, что было бы преимущество написания
for (vector<int>::iterator it != vec.begin(); it != n.end(); ++it)
cout << *it;
Кроме того, почему пишет i < vec.size()
и i++
более распространенным в первом примере и it != begin()
и ++it
более распространены во втором примере? В чем разница, как вы его увеличиваете и почему не всегда используете знак равенства?
Я понимаю, что итераторы могут быть полезны в цикле C++ 11 для циклов и некоторых алгоритмах STD, но почему я должен делать это в обычном коде, поскольку он более подробный?
Это должно покрыть: http://stackoverflow.com/questions/131241/why-use -тераторы-вместо-массивные-индексы http://stackoverflow.com/questions/178934/iterators-why-use-them – chm
Что делать, если vec - это список? – billz
Не так хорошо, как 'std :: for_each (begin (vec), end (vec), [] (int x) {std :: cout << x;});'. Избегайте побочных ошибок и других ошибок, которые могут быть ошибочно приняты: используйте алгоритмы и диапазоны итераторов вместо рукописных циклов. –