На этом шаге мы приведем общие сведения о библиотеке STL.
Стандартная библиотека шаблонов (Standard Template Library, STL) занимает центральное место в стандартной библиотеке C++ и оказывает наибольшее влияние на ее общую архитектуру. STL содержит унифицированные средства для работы с коллекциями с применением современных и эффективных алгоритмов. Благодаря STL программисты могут пользоваться новыми разработками в области структур данных и алгоритмов, не разбираясь в принципах их работы.
С точки зрения программиста, STL содержит подборку классов коллекций для различных целей, а также поддерживает ряд алгоритмов для работы с этими коллекциями. Все компоненты STL оформлены в виде шаблонов и поэтому могут использоваться с произвольными типами элементов. Однако библиотека STL делает еще больше: она формирует архитектуру для включения других классов коллекций и алгоритмов, работающих в сочетании с существующими коллекциями и алгоритмами. В конечном итоге STL поднимает C++ на новый уровень абстракции. Здесь не нужно самостоятельно программировать динамические массивы, связанные списки и двоичные деревья, а также программировать разные алгоритмы поиска. Для использования коллекции нужного типа программист просто определяет соответствующий контейнер, а затем лишь вызывает функции и алгоритмы для обработки данных.
Впрочем, за гибкость STL приходится расплачиваться, и прежде всего тем, что библиотека получилось весьма нетривиальной. Сначала мы рассмотрим общие принципы устройства STL, а также некоторые приемы программирования, необходимые для работы с библиотекой. Затем подробно остановимся на компонентах STL (контейнерах, итераторах, объектах функций, алгоритмах).
На следующем шаге мы рассмотрим компоненты STL.