Библиотека STL
Стандартная библиотека шаблонов (сокр. «STL» от «Standard Template Library») — это часть Стандартной библиотеки С++, которая содержит набор шаблонов контейнерных классов (например, std::vector и std::array), алгоритмов, итераторов и пр. Изначально она была сторонней разработкой, но позже была включена в Стандартную библиотеку С++.
Если вам нужен какой-нибудь общий класс или алгоритм, то, скорее всего, в Стандартной библиотеке шаблонов он уже есть. Положительным моментом является то, что вы можете использовать эти классы без необходимости писать и отлаживать их самостоятельно. Кроме того, вы получаете достаточно эффективные версии этих классов.
В библиотеке выделяют пять основных компонентов:
- Контейнер — хранение набора объектов в памяти.
- Итератор — обеспечение средств доступа к содержимому контейнера.
- Алгоритм — определение вычислительной процедуры.
- Адаптер — адаптация компонентов для обеспечения различного интерфейса.
- Функциональный объект — сокрытие функции в объекте для использования другими компонентами.
Разделение позволяет уменьшить количество компонентов. Например, вместо написания отдельной функции поиска элемента для каждого типа контейнера обеспечивается единственная версия, которая работает с каждым из них, пока соблюдаются основные требования.
Например, в следующем небольшом отрывке кода, который сортирует массив элементов, применен контейнер (вектор), итераторы и алгоритмическая функция:
int main(){ vector<int> v {3, 9, 0, 1, 7, 2}; sort(begin(v), end(v)); for(auto i=begin(v); i != end(v); ++i){ cout << *i << " "; } } // Вывод: 0 1 2 3 7 9
Знание библиотеки STL необходимо для разработчика C++, чтобы писать быстро эффективный код.