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

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

Войти
Регистрация
Восстановить пароль
 
Anzhela777
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 13
#1

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

28.02.2016, 14:47. Просмотров 441. Ответов 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, если итераторы указывают на разные элементы списка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2016, 14:47     Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка
Посмотрите здесь:

Итератор для своего контейнерного класса-списка C++
C++ /Константный итератор
итератор или интератор (iterator ог interator) C++
Итератор для списка C++
C++ Реализовать итератор для самодельного списка
C++ Итератор, вставка в произвольное место списка
Итератор двусвязного списка C++
Разработать класс Итератор, методы которого: переход в начало списка, в конец, к текущему элементу списка, к с C++
C++ Итератор списка не распознаётся
C++ Создать итератор для списка
Реализовать итератор в стиле STL C++
C++ Как вывести одно значение из массива list? Лучше использовать итератор или как-то по другому?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Martein
Оператор ЭВМ 6 разряда
666 / 77 / 13
Регистрация: 22.06.2014
Сообщений: 169
28.02.2016, 14:57     Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка #2
Задание из разряда "Возьми быка за вымя! Почувствуй себя Александром Степановым!".
Это как если бы на занятиях по вождению для блондинок им втирали бы теорию сопротивления материалов или что-то подобное для того, чтобы для умелого вождения автомобилем они могли понимать все тонкости взаимодействия металлов, из которых сделан их Volkswagen Beetle.

Ну а по теме в разных книгах по языку C++ есть главы о контейнерах и алгоритмах. В том же Стивене Прате есть главы, в которых реализуют собственный контейнер vector с динамическим выделением памяти. У Брюсса Эккеля в "Философии C++" тоже было точно помню. Начните, в общем, с ознакомления понятий контейнеров, алгоритмов, итераторов.
Yandex
Объявления
28.02.2016, 14:57     Реализовать двусвязный список (list), итератор (iterator) и константный итератор (сonst_iterator) для списка
Ответ Создать тему
Опции темы

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