Стандартная библиотека шаблонов или STL, является библиотекой C++ универсальных контейнеров, итераторов, алгоритмов и функциональных объектов. Когда C++ был стандартизирован, значительные части STL были приняты в Стандартную Библиотеку, и эти части в Стандартной Библиотеке также иногда ошибочно упоминаются коллективно как "STL".

Стандартная библиотека шаблонов или STL, является библиотекой C++ универсальных контейнеров, итераторов, алгоритмов и функциональных объектов. Первоначально разработанный Alexander Stepanov и Meng Lee и опубликованный HP в 1995. Значительные части STL были приняты с модификациями в Библиотеку Стандарта C++ ISO.

Обратите внимание, что имя, STL неоднозначен, поскольку это может относиться к разным вещам. Следующее является типичными подразумеваемыми смыслами (предложил отметить в скобках):

  • Исходная реализация HP ( или )
  • Библиотека SGI STL ( или )
  • HP STL получил части библиотеки стандарта C++ ( и )
  • Шаблонные части библиотеки стандарта C++ ( и )
  • Вся библиотека стандарта C++ ( и )

Последние два определения являются, строго говоря, неправильными; стандарт C++ никогда не упоминает или "STL" или "Стандартную библиотеку шаблонов". На практике, однако, люди редко должны обращаться к библиотеке HP, и таким образом, "STL" почти всегда используется для описания полученных из STL частей стандартной библиотеки вместо этого (алгоритмы, итераторы и контейнеры), или шаблонные части.

Программные элементы

Большинство программных элементов STL находится в std пространство имен. Контейнеры, алгоритмы, итераторы и другие конструкции помощи существуют в различных заголовках, но они все внутри std пространство имен. Основной и наиболее распространенный используемый контейнер, vector может использоваться:

  • Включая заголовок <vector>
  • Объявление переменной полным ограниченным по объему именем:

    std::vector<int> IntV; 

    или включением всего std (Воздержитесь от выполнения так):

    using namespace std; vector<int> IntV; 

    или получение по запросу определенного символа:

    using std::vector; vector<int> IntV; 

Все другие программные элементы могут использоваться подобным шаблоном.

Красота STL - это Контейнеры (list, unordered_map и т.д.), Алгоритмы (sort, count_if), Итераторы (обратный итератор, итератор константы и т.д.) не зависят друг от друга, но могут использоваться вместе, не зная внутренности другого элемента. Контейнеры и Алгоритмы соединены итераторами.

Ресурсы

*Эта ссылка ненормативна.

Книги