Урок №196. Стандартная библиотека шаблонов (STL)

  Юрий  | 

  Обновл. 24 Авг 2020  | 

 15171

 ǀ   7 

Поздравляем! Вы прошли основную часть туториала по языку С++! На предыдущих уроках мы рассматривали много особенностей языка C++ (включая и некоторые фишки, которые были добавлены в версиях C++11/14/17).

Закрадывается очевидный вопрос: «Что дальше?». Вы, возможно, уже замечали, что большинство программ используют одни и те же концепции снова и снова: циклы, строки, массивы, способы сортировок и т.д. Вы, вероятно, еще заметили, что написание программ без использования контейнерных классов и общих алгоритмов — дело, которое подвержено многим ошибкам. Хорошей новостью является то, что язык C++ поставляется в комплекте с библиотекой классов (и не только), которую вы можете использовать при создании своих программ. Эта библиотека называется Стандартной библиотекой шаблонов.

Стандартная библиотека шаблонов

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

К счастью, вы можете отделить себе кусочек Стандартной библиотеки шаблонов, чтобы его «распробовать» и при этом игнорировать всё остальное до тех пор, пока вы в нем не разберетесь.

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


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (60 оценок, среднее: 4,92 из 5)
Загрузка...

Комментариев: 7

  1. Аватар sky:

    А будет разбираться multithreading? с:

    1. Юрий Юрий:

      В ближайшее время нет.

  2. Аватар Денис:

    GUI бы 🙂 А то как-то печально все c++-программы писать только в консоли…

    Понимаю, что это уже не напрямую относится к C++, но что ж теперь, всё GUI писать в Qt или других языках программирования.

    1. Юрий Юрий:

      Ну сначала нужно научиться писать консольные приложения. Тогда уже можно пробовать и GUI.

    2. Аватар dshadov:

      В мире C++ при создании GUIни реальной альтернативы Qt нет. К тому же IDE у них очень удобная даже для консольных приложений. Может в будущем Юрий надумает взяться за туториал по Qt. Было бы не плохо, особенно, если учесть, что на русском языке нормальных уроков по нему нет и не предвидятся.

      1. Аватар Денис:

        Если бы это было так, то большинство C++-приложений для Windows были бы написаны на Qt'е, но это не так (по моим ощущениям).

        У меня на компе это только R Studio и мои поделки 🙂

        Qt хорош в архитектурном плане: понятен и продуман. Но, к сожалению, тяжеловесен: как в плане размера релиза, так и в плане его производительности, особенно при запуске. Меня не покидает ощущение, что в ряде задач его использование — это как ломание спички массивной бензопилой.

        1. Аватар dshadov:

          Для Windows удобнее всего писать на VS. Это не зависит от языка. Qt совсем для другого. Если и сравнивать Qt, то с wxWidgets и прочими кросс-платформенными инструментами. Да, wxWidgets "полегче" будет, но по многим другим параметрам уступает Qt. Попробуйте его, если Вас смущает потребление ресурсов и размер программ на Qt. А что касается приложений, написанных на Qt, то на самом деле их очень много от "заблокированного" Telegram до Google Earth и кучи медиаплееров.

Добавить комментарий

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