November 22, 2020

Библиотека STL

Стандартная библиотека шаблонов (сокр. «STL» от «Standard Template Library») — это часть Стандартной библиотеки С++, которая содержит набор шаблонов контейнерных классов (например, std::vector и std::array), алгоритмов, итераторов и пр. Изначально она была сторонней разработкой, но позже была включена в Стандартную библиотеку С++.

Если вам нужен какой-нибудь общий класс или алгоритм, то, скорее всего, в Стандартной библиотеке шаблонов он уже есть. Положительным моментом является то, что вы можете использовать эти классы без необходимости писать и отлаживать их самостоятельно. Кроме того, вы получаете достаточно эффективные версии этих классов.

В библиотеке выделяют пять основных компонентов:

  1. Контейнер — хранение набора объектов в памяти.
  2. Итератор — обеспечение средств доступа к содержимому контейнера.
  3. Алгоритм — определение вычислительной процедуры.
  4. Адаптер — адаптация компонентов для обеспечения различного интерфейса.
  5. Функциональный объект — сокрытие функции в объекте для использования другими компонентами.

Разделение позволяет уменьшить количество компонентов. Например, вместо написания отдельной функции поиска элемента для каждого типа контейнера обеспечивается единственная версия, которая работает с каждым из них, пока соблюдаются основные требования.


Например, в следующем небольшом отрывке кода, который сортирует массив элементов, применен контейнер (вектор), итераторы и алгоритмическая функция:

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++, чтобы писать быстро эффективный код.