Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AnreyKazakov
Заблокирован
#1

Как работает итератор? - C++

09.09.2012, 09:26. Просмотров 1105. Ответов 3
Метки нет (Все метки)

C++
1
2
for(vector<string>::iterator iter=vec1.begin();iter!=vec1.end();++iter)
*iter="";
вот такой вот пример разбираю, первая строчка предельно ясна, но вот вторая.... понятно что обнуляет, но откуда взялся *iter ? а он так точно знает что ему стирать и как, хм, странно все это...

Добавлено через 1 минуту
*iter до этого нигде не определялся, не объявлялся...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 09:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как работает итератор? (C++):

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка - C++
не могу понять что должно быть результатом. может подскажете примеры? пожалуйста. Задание: Реализовать двусвязный список (list),...

Как разыменовывать итератор? - C++
Допустим есть list указателей на класс Observer: list&lt;Observer*&gt; m_Observers; Я хочу пройтись по всему списку с помощью итератора: ...

Как вывести одно значение из массива list? Лучше использовать итератор или как-то по другому? - C++
Здравствуйте! Что бы вывести одно значения из массива list нужно использовать итератор или можно как то по другому?

Как реализуется типичный итератор? - C++
Хочется для своего списка написать класс-итератор. Вопрос: от какого класса лучше всего наследоваться, как лучше всего организовать...

Как правильно вернуть итератор из метода - C++
Всем привет. Есть класс обертка над контейнером, который рулит некоторыми сущностями И понадобилось получать итераторы на эти сущности -...

Как передать итератор в качестве параметра функции? - C++
хочу вызвать функцию как-то так: show_string(std::cout, line.begin(), line.end()); в качестве line.begin() и line.end() выступают...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
09.09.2012, 09:28 #2
У итератора, то есть обьекта типа "vector<string>::iterator" перегружен operator*, поэтому говоря *iter ты вызываешь iter.operator* который возврвщает ссылку на значение. Дальше по этому ссылке ты переписываешь значение
1
AnreyKazakov
Заблокирован
09.09.2012, 12:12  [ТС] #3
Спасибо, понял

Добавлено через 2 часа 33 минуты
Да еще вопрос возник, функции begin() и end() применимы только для итераторов?
PS так удивился когда функции эти увидел просто в институте делфи была...лазарус был... паскаль был.... У С++ видимо другой взгляд на назначение этих слов....
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
09.09.2012, 12:27 #4
begin() и end() это просто функции класса. begin() возвращает итератор, установленный на первый элемент в контейнере, а end() возвращает итератор, "установленный" на элемент, следующий за последним.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 12:27
Привет! Вот еще темы с ответами:

как создать копию объекта, на который ссылается итератор? - C++
Есть шаблонная фукнция, в которую передается итератор с произвольным доступом (IT). Необходимо внутри функци создать копию элемента...

Как закончить ввод в итератор ввода для потока - C++
По задумке в представленном ниже коде вводятся слова в консоль, потом как то ввод прекращается и программа дальше выполняет свои подсчеты и...

Как более менее правильно написать итератор(не STL). - C++
Вот, например, пишу класс и всегда помню советы типа &quot;скрывайте реализацию класса&quot; или &quot;если функция по идее не должна изменять данные...

Как сделать, чтобы итератор указывал на определенный элемент контейнера? - C++
как сделать, чтобы итератор указывал на, допустим, пятый элемент контейнера (вектора)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.09.2012, 12:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru