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

Стандартная библиотека шаблонов, или STL, является ++ библиотеки С общих контейнеров, итераторов, алгоритмов и функциональных объектов. Первоначально разработан Александром Степановым и Мэн Ли и опубликован HP в 1995 году. Большая часть STL была принята с изменениями в Стандартную библиотеку ISO C++.

Обратите внимание, что имя 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), Итераторы (обратный итератор, константный итератор и т. Д.) Не зависят друг от друга, но могут использоваться вместе, не зная о внутреннем устройстве другого элемента. Контейнеры и алгоритмы связаны итераторами.

Ресурсы

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

Книги