![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Ramamba |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.2.2009 Репутация: нет Всего: нет |
Есть следующая проблема: написан свой контейнер (подобие листа) и итератор для него. Перегружены все операторы, требуемые для итератора произвольного доступа за исключением "->". Теперь надо сделать так, чтобы с этим итератором мог работать стандартный алгоритм (например, find_if). Не могли бы подсказать, наличие каких методов ожидается от итератора. Буду рад и просто ссылке на какой-нибудь ресурс, где такая проблема поднимается или хорошей книжке.
PS Задание состоит в том, что бы всё написать с нуля, поэтому такой выход, как наследование от std::iterator не рассматривается. |
|||
|
||||
korbian |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 336 Регистрация: 20.2.2007 Где: Penza Репутация: 2 Всего: 14 |
повтори интерфейс стандартного list (информация здесь: std::list), реализуй под него Итератор (суть паттерна можно посмотреть тут: паттерн Итератор). если все реализуешь правильно, работать будет. будут сложности приводи код!!!
-------------------- korbian © |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
Daevaorn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
http://www.kuzbass.ru:8086/docs/isocpp/lib...or.requirements |
||||
|
|||||
Ramamba |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.2.2009 Репутация: нет Всего: нет |
спасибо, буду копать)
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
ещё можно посмотреть boost::iterator_facade
даже если его не использовать, можно будет посмотреть список того, что он предоставляет -------------------- qqq |
|||
|
||||
Ramamba |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.2.2009 Репутация: нет Всего: нет |
ЕЕЕ парни, спасибо вам. Особенно тебе, Daevaorn.
Покопался в этой документации, добавил в итератор тайпдефов
и всё заработало. Алгоритм find_if выбрал из моего листа всё, что надо Это сообщение отредактировал(а) Ramamba - 31.3.2009, 22:12 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |