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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как узнать индекс элемента массива, зная итератор на этот элемент? - C++
Вот пример: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; size_t get_index ( const...

Функция, дружественная классу, вложенному в шаблонный класс, или как написать итератор. - C++
Здравствуйте! Пишу аналог STL vector. Возникают следующие ошибки: source.cpp:11: error: expected initializer before ‘operator’ ...

Итератор - C++
Вот задача: Реализовать шаблон упорядоченного массива как двусвязного списка. Операцию доступа по индексу заменить итератором. Вопрос:...

Итератор - C++
#include &lt;iostream&gt; #include &lt;list&gt; using namespace std; list&lt;int&gt;::iterator pos (list&lt;int&gt; a,list&lt;int&gt;::iterator it) { for (it;...


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

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

Добавлено через 2 часа 33 минуты
Да еще вопрос возник, функции begin() и end() применимы только для итераторов?
PS так удивился когда функции эти увидел просто в институте делфи была...лазарус был... паскаль был.... У С++ видимо другой взгляд на назначение этих слов....
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,248
Записей в блоге: 1
Завершенные тесты: 1
09.09.2012, 12:27     Как работает итератор? #4
begin() и end() это просто функции класса. begin() возвращает итератор, установленный на первый элемент в контейнере, а end() возвращает итератор, "установленный" на элемент, следующий за последним.
Yandex
Объявления
09.09.2012, 12:27     Как работает итератор?
Ответ Создать тему
Опции темы

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