1 | |||||||||||
Реализация примитивного STL совместимого контейнера20.12.2013, 00:07. Показов 5555. Ответов 7
Метки нет (Все метки)
Как то застрял на этом. Как правильно объявить все typedef для итератора? Нужен минимальный набросок такого контейнера.
Поправил код на это:
0
|
20.12.2013, 00:07 | |
Ответы с готовыми решениями:
7
Реализация STL-совместимого списка Из STL контейнера Выбор контейнера в STL Обработка STL контейнера vector |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
20.12.2013, 01:12 | 2 | |||||
не работает - это не компилится или в рантайме ошибки?
для студии добавил operator <, для вот этого: http://www.compileonline.com/c... online.php добавил #include <cstddef> и nullptr заменил на 0 (хз как там в новый стандарт переключиться). в результате компилится и печатает пятерки:
1
|
Неэпический
|
||||||
20.12.2013, 01:26 | 3 | |||||
1
|
20.12.2013, 12:05 [ТС] | 4 | |||||
Почему тогда в шаблонах надо снова переопределять унаследованные тайпдефы?
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||||
20.12.2013, 14:24 | 5 | ||||||||||
MyIterator.h
1
|
20.12.2013, 14:40 [ТС] | 6 |
MrGluck, я больше спрашивал про наследование. Вот как в книге написано:
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
21.12.2013, 14:49 | 7 |
от итератора наследоваться все же полезно. Croessmah показал как лучше тайпдефить нужные типы.
по поводу того, почему это нужно тайпдефить: возможно описание этого дела есть в главе 9.4 Наследование и шаблоны классов вот такой книги: Дэвид Вандевурд, Николай М. Джосаттис Шаблоны C++: справочник разработчика = C++ Templates: The Complete Guide. — М.: «Вильямс», 2003. — С. 544. — ISBN 0-201-73484-2 ссылка с картинкой: http://www.williamspublishing.... 513-3.html Попробовал унаследоваться вот от такого std::iterator<std::random_access_iterator_tag, int> - все скомпилилось без перетайпдефов. тут наследование от конкретного класса и все имена в нем вполне однозначные. В общем там всякие зависимые от аргумента шаблона имена и т.д. и т.п. Лучше найти и почитать.
0
|
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||||||
21.12.2013, 15:05 | 8 | |||||
Пользовательский итератор наследует типы из std::iterator, тут всё в порядке. Но если самому шаблону контейнера надо вынуть их из итератора, следует пользоваться typename.
Добавлено через 1 минуту
0
|
21.12.2013, 15:05 | |
21.12.2013, 15:05 | |
Помогаю со студенческими работами здесь
8
Возврат контейнера STL из функции Адаптация контейнера под STL Алгоритм выбора контейнера STL STL итератор на конец контейнера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |