Что такое STL? Это стандартная библиотека шаблонных классов (или короче: библиотека шаблонов). Проще говоря, это набор встроенных в C++ классов, не привязанных к какому-то конкретному типу или к конкретным типам. Набор шаблонов в языке не очень большой, но в него входит не меньше тринадцати классов (чем новее стандарт языка, тем может быть больше). В старых версиях языка STL отсутствовал вообще, поэтому в древних комиляторах использовать STL невозможно, можно только навелосипедить свой или где-то найти фрагменты кода, подкорректированные для таких компиляторов. Но и использование очень стареньких компиляторов явление само по себе не обычное. Факт в том, что STL был разработан, утвержён и встроен в C++, и очень массово используется.
Сами по себе шаблоны хоть и отвязаны от типа, но перед их исполнением программисты обозначают, какой тип должен быть задействован.
STL — это набор классов, не привязанных к типам.
Перед началом работы с таким классом программист в коде сообщает должный использоваться в классе тип данных.
Для использования шаблонных классов нужно подключать соответствующие им диррективы:
C++
1
2
#include <vector> //Использование шаблонного класса "vector"
#include <set> //Использование шаблонного класса set
Согласно книге 1999 года можно было использовать такие директивы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <algorithm> //классы для работы с алгоритмами
#include <deque> //класс очереди типа "дек"
#include <functional> //классы для работы с функциями
#include <list> //класс для работы со списками (динамические структуры)
#include <map> //класс "ассоциативный массив"
#include <memory> //классы для работы с памятью
#include <numeric> //классы для обработки последовательностей значений
#include <set> //класс "множество"
#include <stack> //класс "стек"
#include <utility>
#include <vector> //класс для работы с динамически-создаваемыми массивами
#include <array> //класс для работы с обычными массивами
Иногда можно встречать учащихся языку, кто пытается подключить все диррективы разом. Так делать не нужно. Нужно использовать только те диррективы, которые необходимы для кода. Т. е. если используется vector и не используется set, то не нужно включать диррективу для set на всякий случай, нужно использовать только диррективу для вектора, а если появится необходимость использовать в коде и set, тогда уже и подключать ему необходимое. Бывает и так, что какой-то из шаблонов работает с неподключенной для себя диррективой; это означает лишь то, что нужная ему дирректива используется в одной из задействованных. Правильно будет всегда писать необходимые, а не надеяться на посторонние, потому что иначе то, что будет работать в одном компиляторе, может не заработать в другом.
Вряд ли эта публикация содержит в себе много полезной информации. Это вступительная часть, а не попытка рассказать что-то толковое. Но если получился какой-то хороший эффект, то это здорово. В любом случае, перед началом изучения STL имеет смысл озознать, что STL — это набор встроенных в язык функций и классов, отвязанных от типов данных, хоть и имеющих что-то вроде отложенной типизации.
Добавить комментарий