шаблоны проектирования, используемые в STL (стандартная библиотека шаблонов)
Я изучаю STL и шаблоны дизайна . я хотел знать, есть ли какой-либо документ или ссылка, которая объясняет, как шаблоны проектирования реализуются в STL я сделал google, но не смог получить много данных
5 ответов
Я надеюсь, что вы имеете в виду, "какие шаблоны дизайна можно определить в STL".
стек STL является адаптером контейнера. Адаптер шаблон проектирования. Итератор также является шаблоном проектирования. Объекты функции STL связаны с шаблоном команд.
модели:
- переходник (переходники контейнера)
- стек
- очереди
- приоритет очереди
- итератор
- команда + адаптер (переходник) функция
- итератор + адаптер (адаптеры итератора)
- обратные итераторы
- вставить итераторы
- итераторы поток
- метод шаблона (алгоритмы STL с использованием пользовательских функций)
- , который, несмотря на шаблон? (Распределители)
способ реализации этих шаблонов очень отличается от того, как они реализованы в объектно-ориентированном дизайне. Джосаттис писал: "концепция STL противоречит первоначальной идее объектно-ориентированного программирования". Это то, что вызывает путаницу вокруг вашего вопроса.
STL широко использует шаблоны. GoF называем это параметризованные типы. Шаблоны полезны для настройки решения Шаблона дизайна или при разработке нового, интуитивно понятного решения. (Дополнительные сведения см. В разделе "наследование по сравнению с Параметризованными типами "в разделе"шаблоны проектирования: элементы объектно-ориентированного проектирования"). Преимущество ознакомления с STL (и boost) заключается в том, что они являются хорошим источником для изучения шаблонов (и мета-программирование) на C++, который, в свою очередь, может быть использован при разработке лучших проектов.
Я думаю, что ваша проблема в том, что шаблоны проектирования не реализовано в STL. Они могут быть реализованы на C++ и использовать контейнеры и алгоритмы из STL, но STL и шаблоны проектирования не связаны каким-либо другим образом.
мой совет был бы узнать о STL, прочитав что-то вроде отличная книга Николая Хосуттиса стандартная библиотека C++: учебник и справочник или STL учебник и справочное руководство. Этот поможет в изучении того, что STL может сделать для вас. Затем копайтесь в реализации шаблонов проектирования на C++, используя свои знания о STL.
с C++11, у нас есть три вида смарт-указатель, i.e, shared_ptr, unique_ptr и weak_ptr, шаблон за ними:Прокси-шаблон.