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

  Юрий  | 

    | 

  Обновл. 2 Июл 2019  | 

 3959

 ǀ   7 

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

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

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

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

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

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


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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (19 оценок, среднее: 4,89 из 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 не будет опубликован. Обязательные поля помечены *