STL (стандартная библиотека шаблонов) - это общий набор шаблонов классов и алгоритмов, позволяющий программистам легко реализовывать стандартные структуры данных, такие как очереди, списки и стеки.
STL предоставляет следующие конструкции, разделенные на три группы:
Идея STL состоит в том, что тяжелая часть работы при манипуляциях сложными структурами данных уже была сделана. Если программист захочет использовать стек целых чисел, то все, что ему нужно будет сделать, это написать такой код:
stack<int> myStack;
С минимальными усилиями со своей стороны мы теперь можем выполнять функции push и pop над стеком. Магия шаблонов C++ позволяет определить любой тип данных, не только целочисленный. Класс стека STL предоставляет общую функциональность стека вне зависимости от данных в стеке.
Кроме того, STL предоставляет набор полезных алгоритмов: например, бинарный поиск, сортировку и for_each – они могут использоваться во множестве контейнеров или структур данных.
Итераторы реализуют общий метод доступа и навигации по элементам структур данных STL.
Заголовочный файл <functional> определяет методы, связанные с созданием функциональных объектов.
Заголовочный файл <memory> предоставляет простые структуры управления памятью, например, auto_ptr.
Также есть несколько общих полезных методов, таких как make_pair в заголовочном файле <utility>.