Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Anzhela777
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 13
1

Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка

28.02.2016, 14:47. Просмотров 1028. Ответов 1
Метки нет (Все метки)

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

Класс list<T> должен иметь следующие методы:
•iterator begin()
Возвращает итератор на начало списка
•iterator end()
Возвращает итератор на несуществующий элемент за последним элементом списка
•const_iterator cbegin() const
Возвращает константный итератор на начало списка
•const_iterator cend() const
Возвращает итератор на несуществующий элемент за последним элементом списка
•int size() const
Возвращает количество элементов в списке
•void clear()
Удаляет все элементы списка
•iterator erase(iterator pos)
Удаляет элемент, на который указывает итератор pos, и возвращает итератор на следующий элемент списка
•iterator erase(iterator begin, iterator end)
Удаляет элементы от итератора begin до (не включая) end
•void insert(iterator before, T& value)
Вставляет значение после итератора before
•void append(T value)
Вставляет значение value в конец списка
•void prepend(T value)
Вставляет значение value в начало списка
•void removeFirst()
Удаляет первый элемент
•void removeLast()
Удаляет последний элемент
•T takeFirst()
Удаляет и возвращает первый элемент
•T takeLast()
Удаляет и возвращает последний элемент
•list operator+(list other) const
Создает и возвращает список, в котором элементы текущего списка предшествуют элементам списка other
•list operator+=(list other)
Добавляет элементы из списка other в конец текущего списка и возвращает ссылку на этот список
•list operator+=(T value)
Добавляет значение value в конец списка и возвращает ссылку на этот список
•list operator<<(list other)
Добавляет элементы из списка other в конец текущего списка и возвращает ссылку на этот список
•list operator<<(T value)
Добавляет значение value в конец списка и возвращает ссылку на этот список
•list operator=(const list& other)
Присваивает список other

Класс iterator<T> должен иметь следующие методы:
•T& operator*() const
Возвращает ссылку на указываемое значение
•iterator operator+(int i) const
Перемещает итератор на i значений вперед
•iterator& operator++()
Перемещает итератор на следующее значение и возвращает итератор на новое значение
•iterator operator++(int)
Перемещает итератор на следующее значение и возвращает итератор на прошлое значение
•iterator& operator+=(int i)
Перемещает итератор на i значений дальше и возвращает его
•iterator operator-(int i) const
Перещает итератор на i значений назад
•iterator& operator--()
Перемещает итератор на прошлое значение и вовзращает итератор на новое значение
•iterator operator--(int)
Перемещает итератор на прошлое значение и возвращает итератор на прошлое значение
•T* operator->() const
Возвращает указатель на указываемое значение
•iterator& operator=(const iterator& other)
Присваивает итератор other
•bool operator==(const iterator& other) const
Возвращает true, если итераторы указывают на один элемент списка
•bool operator!=(const iterator& other) const
Возвращает true, если итераторы указывают на разные элементы списка

Класс const_iterator<T> должен иметь следующие методы:
•const T& operator*() const
Возвращает ссылку на указываемое значение
•const_iterator operator+(int i) cons
Перемещает константный итератор на i значений вперед
•const_iterator& operator++()
Перемещает константный итератор на следующее значение и возвращает константный итератор на новое значение
•const_iterator operator++(int)
Перемещает константный итератор на следующее значение и возвращает константный итератор на прошлое значение
•const_iterator& operator+=(int i)
Перемещает константный итератор на i значений дальше и возвращает его
•const_iterator operator-(int i) const
Перещает константный итератор на i значений назад
•const_iterator& operator--()
Перещает константный итератор на прошлое значение и вовзращает константный итератор на новое значение
•const_iterator operator--(int)
Перещает константный итератор на прошлое значение и возвращает константный итератор на прошлое значение
•сonst T* operator->() const
Возвращает константный указатель на указываемое значение
•const_iterator& operator=(const const_iterator& other)
Присваивает константный итератор other
•bool operator==(const const_iterator& other) const
Возвращает true, если итераторы указывают на один элемент списка
•bool operator!=(const const_iterator& other) const
Возвращает true, если итераторы указывают на разные элементы списка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2016, 14:47
Ответы с готовыми решениями:

Реализовать итератор для самодельного списка
Нужно узнать что из себя представляет итератор. Посмотреть его реализацию....

Итератор, двусвязный кольцевой список
Итератор должен ходить по кругу,то есть при указании на следующее значение в...

/Константный итератор
Нужно создать константный итератор. 1) Какой из вариантов будет правильней (в...

итератор или интератор (iterator ог interator)
Привет всем Задали мне тут вопрос, а я что-то засомневался правильно ли я...

Зачем std::set имеет в наличии не константный итератор?
Сабж. Зачем? Вроде бы смысла нету. Элементы std::set нельзя модифицировать....

1
Martein
686 / 95 / 17
Регистрация: 22.06.2014
Сообщений: 204
28.02.2016, 14:57 2
Задание из разряда "Возьми быка за вымя! Почувствуй себя Александром Степановым!".
Это как если бы на занятиях по вождению для блондинок им втирали бы теорию сопротивления материалов или что-то подобное для того, чтобы для умелого вождения автомобилем они могли понимать все тонкости взаимодействия металлов, из которых сделан их Volkswagen Beetle.

Ну а по теме в разных книгах по языку C++ есть главы о контейнерах и алгоритмах. В том же Стивене Прате есть главы, в которых реализуют собственный контейнер vector с динамическим выделением памяти. У Брюсса Эккеля в "Философии C++" тоже было точно помню. Начните, в общем, с ознакомления понятий контейнеров, алгоритмов, итераторов.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2016, 14:57

Итератор для списка
#include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class Link {...

Создать итератор для списка
:- //ListNode.h #ifndef LISTNODE_H #define LISTNODE_H template &lt;typename...

Итератор для своего контейнерного класса-списка
Здравствуйте. Есть класс List, и мне надо помимо стандартных методов приделать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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