Описание тега stl
Стандартная библиотека шаблонов, или STL, является ++ библиотеки С общих контейнеров, итераторов, алгоритмов и функциональных объектов. Первоначально разработан Александром Степановым и Мэн Ли и опубликован HP в 1995 году. Большая часть STL была принята с изменениями в Стандартную библиотеку ISO C++.
Обратите внимание, что имя STL неоднозначно, так как оно может относиться к разным вещам. Ниже приведены типичные предполагаемые значения (предлагаемые теги в скобках):
- Оригинальная реализация HP ( stl или hp-stl)
- Библиотека SGI STL ( stl или sgi-stl)
- Производные от HP STL части стандартной библиотеки C++ ( stl и stdlib)
- Части шаблона стандартной библиотеки C++ ( stl и stdlib)
- Вся стандартная библиотека C++ ( C++ - стандартная библиотека и stdlib)
Последние два определения, строго говоря, неверны; в стандарте 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: Стандартная библиотека шаблонов