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

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

Войти
Регистрация
Восстановить пароль
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
#1

Проиллюстрируйте работу простейщего класса итератора - C++

03.11.2013, 16:45. Просмотров 258. Ответов 4
Метки нет (Все метки)

Дан класс, представляющий собой векторную таблицу. Как будет выглядеть для него класс итератор. Если можно, покажите, как перебираются элементы с помощью этого класса.
C++
1
2
3
4
5
6
7
class Item{
public:
    int key;
    char *info;
};
 
Item table[100];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 16:45     Проиллюстрируйте работу простейщего класса итератора
Посмотрите здесь:

C++ Разработать программу-драйвер, которая продемонстрирует работу производного класса
Класс и приложение проверяющее работу класса. C++
C++ Проверка итератора
C++ Ошибка при использовании итератора в реализации класса
Ошибка в перегрузке операторов для класса - итератора C++
Конструирование класса, моделирующего работу устройства C++
C++ Разработать шаблон класса реализующего работу с матрицами переменной размерности.
Определить функции итератора, вне класса C++
C++ Создание класса, моделирующего работу RS-триггера
C++ Валидность итератора
C++ Реализовать шаблон класса set, который имитировал бы работу с множествами
Класс итератора для класса вектора C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,911
Завершенные тесты: 1
03.11.2013, 16:55     Проиллюстрируйте работу простейщего класса итератора #2
Item не является контейнером, поскольку не содержит в себе множество однотипных элементов, поэтому для него итератор никак не будет выглядеть. Простейший итератор, позволяющий перебирать содержимое table - указатель:
C++
1
2
3
4
5
6
typedef Item* item_iterator;
void foo()
{
    for(item_iterator i = table; i != table + 100; ++i)  // В C++11 это пишется лучше: for(auto i = begin(table); i != end(table); ++i)
        std::cout << i->key << std::endl << i-> info << std::endl;
}
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
03.11.2013, 17:26  [ТС]     Проиллюстрируйте работу простейщего класса итератора #3
Nick Alte, а можете привести, такой же простой пример итератора для контейнера?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12529 / 7091 / 797
Регистрация: 27.09.2012
Сообщений: 17,501
Записей в блоге: 2
Завершенные тесты: 1
03.11.2013, 17:28     Проиллюстрируйте работу простейщего класса итератора #4
Паттерн итератор
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,911
Завершенные тесты: 1
03.11.2013, 19:26     Проиллюстрируйте работу простейщего класса итератора #5
Цитата Сообщение от Sammm Посмотреть сообщение
а можете привести, такой же простой пример итератора для контейнера?
Для вектора итератором тоже может служить обычный указатель. Вообще категории итераторов и требования к ним полностью описаны, например, здесь. Любой объект, соответствующий этим требованиям, является итератором.
Yandex
Объявления
03.11.2013, 19:26     Проиллюстрируйте работу простейщего класса итератора
Ответ Создать тему
Опции темы

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