18 февраля 2013 в 11:20
Итераторы в C++
Итераторы используются для доступа к элементам контейнера так же, как указатели - для доступа к элементам обычного массива. Как мы знаем, в языке c++ над указателями можно выполнять следующий набор операций: разыменование, инкремент/декремент, сложение/вычитание и сравнение. Соответственно, любой итератор реализует все эти операции или некоторое их подмножество. Кроме того, некоторые итераторы позволяют работать с объектами в режиме "только чтение" или "только запись", тогда как другие предоставляют доступ и на чтение, и на запись.
Для создание итератора необходимо написать имя контейнера <тип данных> :: iterator и имя итератора.
Например
vector::iterator begin; string::iterator end,cur;
Да, да. Строки это тоже контейнеры;
Теперь что мы можем делать с итераторами.
Мы можем получить элемент, на который они ссылаются:
cout<<*cur<
Здесь мы выводим элемент, на который указывает cur. Как вы наверное уже поняли, оператор * позволяет нам обращаться не к итераторы, а к элементу
Мы можем перейти к итераторы на следующий элемент или даже дальше:
cur++; // перейти к следующему элементу cur+=10; // <=>cur=cur+10 перейти на 10 элементов вперед
Вот, например, вывод всего вектора на экран:
vectortest; //как-то его заполнили vector ::iterator cur; for (cur=test.begin();cur
15 декабря 2016 в 12:44
Supply of of herbalhttp://v9onlinepharm.com/ , for women uk advantages.
авторизуйтесь
или войдите через