STL — Standard Template Library, стандартная библиотека шаблонов
Богатая коллекция структур данных, основанная на использовании шаблонов. Эти структуры содержат классы для векторов, списков, множеств, карт (словарей), стеков, очередей, очередей с приоритетами.
Одна из наиболее необычных идей в STL — это обобщенные алгоритмы. Обобщенные алгоритмы в STL напоминают классы- шаблоны. Идея шаблонов применяется к отдельным функциям.
Объектно-ориентированное программирование рассматривает инкапсуляцию как главную цель. Хорошо разработанный объект старается инкапсулировать все состояние и поведение, необходимые для выполнения задачи, и в то же время скрывает как можно больше деталей внутреннего устройства. Поведение, обеспечиваемое их стандартными компонентами, является минимальным, почти что спартанским. Вместо этого каждый компонент предназначен для функционирования совместно с большим набором обобщенных алгоритмов, имеющихся в библиотеке. Эти алгоритмы не зависят от контейнеров и поэтому могут работать со многими различными типами.
Отделяя функционирование алгоритмов от контейнерных классов, библиотека STL много выигрывает в размере — как в объеме самой библиотеки, так и в генерируемом коде.