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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
Maxi Paul
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4
#1

Написать свой итератор, чтобы алгоритмы STL работали с моим классом - C++

27.12.2010, 18:47. Просмотров 2638. Ответов 4
Метки нет (Все метки)

Как написать свой итератор, чтобы действовал как стандартный и мог использовать STL алгоритмы.
(У меня есть класс двусвязный списко (контейнерные не предлагать), нужно написать итератор, который будет унаследован от itertator_traits или просто от iterator). Не получется правильно унаследовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 18:47     Написать свой итератор, чтобы алгоритмы STL работали с моим классом
Посмотрите здесь:

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

Реализовать итератор в стиле STL - C++
Подскажите как найти решение. class Iterator { int m_value; public: Iterator(const int val) : m_value(val) { } int...

STL итератор на конец контейнера - C++
Подскажите пожалуйста у меня задача сделать дерево и слизать интерфейс с STL std::map. Вопрос в следующем: когда мы обходим map итератором...

Свой однонаправленный итератор - C++
Пытаюсь написать свой итератор и никак не могу придумать как писать операторы == и !=. Подскажите пожалуйста. template <class mytemp>...

Свой итератор для своего шаблона - C++
Доброго дня всем. Долго разбираюсь, никак не разберусь. Написал свой шаблонный класс. Написал к нему итератор(тоже шаблон). Пытаюсь...

STL алгоритмы сортировки - C++
Здрасти. В STL есть алгоритмы sort - упорядочивает последовательность и stable_sort - упорядочивает последовательность, не меняя...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
27.12.2010, 19:07     Написать свой итератор, чтобы алгоритмы STL работали с моим классом #2
следуй исходя из сути итератора - указатель на элемент массива
соот-но для списка напиши класс двунаправленный итератор, и в своем классе список добавь 2 итератора на первый и последний элементы.

Добавлено через 2 минуты
хотя я сомневаюсь что у тебя из этой затии получится чтоюы функции принимали твои итераторы
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
27.12.2010, 19:14     Написать свой итератор, чтобы алгоритмы STL работали с моим классом #3
Итератор - это концепция. Его необязательно наследовать, главное - описать определённым образом. Определить ему операции ==, *, ->, ++ и -- (ну, может быть, ещё несколько - это надо глянуть подробнее) - и подавляющее большинство алгоритмов будут кушать его как миленькие. Ну и ещё определить встроенные типы как в iterator (то есть, с теми же именами).
Maxi Paul
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4
28.12.2010, 11:46  [ТС]     Написать свой итератор, чтобы алгоритмы STL работали с моим классом #4
Спасибо. Попробую!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2010, 11:59     Написать свой итератор, чтобы алгоритмы STL работали с моим классом
Еще ссылки по теме:

Функторы и алгоритмы stl - C++
Добрый день! Интересует такой вопрос. Я хочу, используя стандартный алгоритм стл for_each() и функтор, определить наибольший элемент в...

Задача на С++. Алгоритмы библиотеки STL. - C++
Программа должна демонстрировать использование контейнерных классов для хранения встроенных типов данных. В программе выполнить...

Алгоритмы STL Удаление элементов в векторе - C++
Банальный вопрос. vector<int> В нем разные числа могут повторяться. Хочу удалить заданное значение, полностью исключить его из вектора. ...

Стандартная библиотека шаблонов STL Алгоритмы - C++
Здравствуйте помогите пожалуйста сделать сортировку по фамилии // ConsoleApplication59.cpp: определяет точку входа для консольного...

Контейнер map и алгоритмы STL: несовместимость? - C++
Всем доброго времени суток! Столкнулся с проблемой: алгоритм remove_if не работает с контейнером map. Рассмотрим следующую функцию: ...

Избавиться от цикла, используя алгоритмы из STL - C++
Сделал вот такую функцию... Она создает из вектора ассоциативный массив, у которого ключ - элемент вектора, а значение - частота повторений...


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
28.12.2010, 11:59     Написать свой итератор, чтобы алгоритмы STL работали с моим классом #5
Вектор наподобие STL
если что может пригодится. писал свой вектор + аллокатор + итератор. как пример можете посмотреть
Yandex
Объявления
28.12.2010, 11:59     Написать свой итератор, чтобы алгоритмы STL работали с моим классом
Ответ Создать тему
Опции темы

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