Я изучаю STL и шаблоны проектирования. я хотел бы знать, есть ли документ или ссылка, которая объясняет, как шаблоны проектирования реализуются в STL я сделал Google, но не в состоянии получить много данныхшаблоны проектирования, используемые в STL (стандартная библиотека шаблонов)
ответ
Надеюсь, вы имеете в виду, «какие шаблоны дизайна можно идентифицировать в STL».
Стек STL - это контейнерный адаптер. Адаптер представляет собой шаблон проектирования. Итератор также является шаблоном проектирования. Объекты функции STL связаны с шаблоном команды.
Шаблоны:
- адаптер (контейнерные адаптеры)
- стек
- очереди
- очередей приоритетов
- итератора
- команда + адаптер (функциональные адаптеры)
- итератора + адаптер (итератора адаптеры)
- обратные итераторы
- вставки итераторы
- поток итераторы
- Шаблон Метод (алгоритмы STL с использованием определенных пользователем функций)
- Какой порождающие шаблоны проектирования ? (Распределители)
Способ реализации этих шаблонов сильно отличается от способа реализации в объектно-ориентированном дизайне. Josuttis писал: «Концепция STL противоречит первоначальной идее объектно-ориентированного программирования». Это то, что вызывает путаницу вокруг вашего вопроса.
Есть ли у вас пример адаптера итератора в STL? – Frank
@dehmann: Я добавил их. Не стесняйтесь редактировать мой ответ. –
5. Метод шаблона (алгоритмы STL с использованием пользовательских функций) –
Я думаю, что ваша проблема заключается в том, что дизайн модель не реализованы в STL. Они могут быть реализованы на C++ и использовать контейнеры и алгоритмы из STL, но STL и Design Patterns не связаны каким-либо другим способом.
Моим советом было бы узнать о STL, прочитав что-то вроде Nicolai Josuttis' excellent book The C++ Standard Library: A Tutorial and Reference или STL Tutorial and Reference Guide. Это поможет узнать, что STL может сделать для вас. Затем вы можете внедрить шаблоны проектирования на C++, используя свои знания о STL.
STL и Design Patterns определенно связаны между собой. Они оба касаются абстракций. –
Итераторы - это шаблон дизайна. Определенно реализовано в STL. –
@MartinYork - Несмотря на название, я не согласен с тем, что реализация итераторов в STL представляет собой реализацию шаблона проектирования Iterator больше, чем указатели. Шаблон канонического итератора включает в себя метод определения того, будет ли траверс больше не давать элементы без запроса базовой коллекции. –
Iterator pattern используется довольно сильно в STL.
STL широко использует шаблоны. GoF вызовите эти параметризованные типы. Шаблоны полезны для настройки решения шаблона дизайна или придумывания нового, интуитивного решения. (Подробнее см. Раздел «Наследование по сравнению с параметризованными типами» в «Design Patterns: Elements of Reusable Object-Oriented Software»). Преимущество знакомства с STL (и boost) заключается в том, что они являются хорошим источником, чтобы узнать о шаблонах (и мета-программировании) на C++, которые, в свою очередь, могут быть использованы при разработке лучших проектов.
С C++ 11, мы получили тройки видов smart pointer, то есть, shared_ptr, unique_ptr и weak_ptr, картина за ними: Proxy шаблон.
- 1. Шаблоны проектирования, используемые в CakePHP
- 2. C++: векторная стандартная библиотека шаблонов
- 3. стандартная библиотека STL в C++
- 4. Шаблоны проектирования, используемые в .NET framework?
- 5. Стандартная библиотека шаблонов для дерева сегментов
- 6. Шаблоны проектирования, используемые в Eclipse GEF
- 7. Примеры шаблонов проектирования, используемые в JDK
- 8. Стандартная библиотека шаблонов, векторы и ошибки синтаксиса
- 9. Шаблоны проектирования, обычно используемые для RTOS (VXworks)
- 10. Почему стандартная библиотека IEEE vhdl не STL?
- 11. Стандартная библиотека шаблонов с использованием g ++
- 12. шаблоны, используемые в итераторах
- 13. Категории шаблонов проектирования
- 14. Существуют ли шаблоны проектирования, используемые в .NET Framework?
- 15. 5 Шаблоны проектирования в JavaFX?
- 16. Языковые интегрированные шаблоны проектирования
- 17. Автоматизированные шаблоны проектирования C++
- 18. Где находится стандартная библиотека?
- 19. шаблоны проектирования python
- 20. Шаблоны проектирования и Scala
- 21. Каковы наиболее часто используемые шаблоны проектирования программного обеспечения?
- 22. Php шаблоны проектирования
- 23. Каковы шаблоны проектирования, используемые в PHP (либо в функции, либо в библиотеке или где угодно)
- 24. Шаблоны проектирования Java: Фасад
- 25. Какова актуальность шаблонов проектирования J2EE?
- 26. Зрелая стандартная библиотека для C
- 27. Существуют ли шаблоны проектирования пакетной обработки?
- 28. Сравнение шаблонов проектирования
- 29. шаблоны проектирования mvc и mvp
- 30. Шаблоны шаблонов шаблонов
STL - это универсальное программирование, не ориентированное на объект. Вам нужно переустановить. – KitsuneYMG
@ kts: шаблоны проектирования не являются эксклюзивными для объектно-ориентированного дизайна. –
Вы смотрите на некоторую реализацию STL. Исходный код может ответить вам на множество вопросов. – Ross