Библиотека stl: введение. Стандартная библиотека шаблонов в С++

Всем привет! В этой статье мы начнем изучать стандартную библиотеку С++, которая называется stl.

Если вдруг кто-то не знает, что такое библиотека. Библиотека это обычный набор различных классов, алгоритмов, структур данных, методов и так далее, которые уже написаны за вас. То есть, например, вам не нужно реализовывать собственные классы стека или кучи, вам не нужно писать собственные алгоритмы бинарного поиска, сортировок и так далее.
библиотека stl

Этими алгоритмами вы сможете воспользоваться из стандартной библиотеки. Все они были написаны уже давным-давно и за вас. То есть вы можете спокойно сэкономить свое время воспользовавшись стандартными алгоритмами. Библиотек для С++ существует достаточно много, так как это известный и широко используемый язык. Самая начальная библиотека это естественно библиотека STL, то есть стандартная библиотека которая уже вшита в большинство версий С++. То есть вам не нужно ничего скачивать эта библиотека будет уже у вас – в вашей IDE или компиляторе.

Также существуют такие библиотеки, которые называются boost и QT – это уже сторонние библиотеки, которые мы будем изучать чуть позже, но пока давайте разбираться что такое STL и из чего она состоит, и как с ней взаимодействовать.

В STL существуют следующие три основные сущности: контейнеры, итераторы и алгоритмы.

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

Вектор это подобие массива, если не вдаваться в подробности, позже я обезательно расскажу подробнее о нем. Так вот мы можем написать собственные какие-то алгоритмы, но зачем нам это делать если за нас уже это сделали. Поэтому мы можем взять стандартные алгоритмы и использовать их. И для удобства взаимосвязи этих алгоритмов и контейнеров, содержащихся в STL, мы можем использовать итераторы.

Итераторы можно назвать указателями, которые достаточно сильно упрощают нам работу, ранее взаимосвязь, между контейнерами и алгоритмами. Можно привести аналогию: можем назвать контейнер – экраном монитора от компьютера, а алгоритмом мы можем назвать сам системный блок и для того чтобы нам связать системный блок, то есть алгоритм и контейнер, то есть монитор нам нужен шнур, по которому эти данные будут передаваться. И в качестве этого шнура будет выступать итератор, то есть своего рода связующий элемент через который передаются данные туда-обратно.

Итераторы бывают разными: итераторы которые могут пропускать данные лишь в один конец, есть iterator которые могут двигаться туда и обратно, но об этом мы поговорим в следующих статьях, а сейчас давайте рассмотрим общую концепцию, как все это вместе работает. В следующих статьях я начну рассказывать сначала о контейнерах, а затем об алгоритмах и итераторах.


Вы так же можете ознакомиться с другими материалами по теме:


Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *