Стандартная библиотека шаблонов или STL, является библиотекой C++ универсальных контейнеров, итераторов, алгоритмов и функциональных объектов. Когда C++ был стандартизирован, значительные части STL были приняты в Стандартную Библиотеку, и эти части в Стандартной Библиотеке также иногда ошибочно упоминаются коллективно как "STL".
Стандартная библиотека шаблонов или STL, является библиотекой C++ универсальных контейнеров, итераторов, алгоритмов и функциональных объектов. Первоначально разработанный Alexander Stepanov и Meng Lee и опубликованный HP в 1995. Значительные части STL были приняты с модификациями в Библиотеку Стандарта C++ ISO.
Обратите внимание, что имя, STL неоднозначен, поскольку это может относиться к разным вещам. Следующее является типичными подразумеваемыми смыслами (предложил отметить в скобках):
Последние два определения являются, строго говоря, неправильными; стандарт 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
), Итераторы (обратный итератор, итератор константы и т.д.) не зависят друг от друга, но могут использоваться вместе, не зная внутренности другого элемента. Контейнеры и Алгоритмы соединены итераторами.
*Эта ссылка ненормативна.
Библиотека стандарта C++: учебное руководство и ссылка (2-й выпуск) глава 6: стандартная библиотека шаблонов