Лучшие вопросы
Таймлайн
Чат
Перспективы

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

Из Википедии, свободной энциклопедии

Remove ads
Remove ads

Библиотека стандартных шаблонов (англ. Standard Template Library, STL) — набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++.

Библиотека стандартных шаблонов до включения в стандарт C++ была сторонней разработкой, вначале — фирмы HP, а затем — SGI. Стандарт языка не называет её «STL», так как эта библиотека стала неотъемлемой частью языка, однако многие люди до сих пор используют это название, чтобы отличать её от остальной части стандартной библиотеки (потоки ввода-вывода (iostream), подраздел Си и др.).

Проект под названием STLPort, основанный на SGI STL, осуществляет постоянное обновление STL, iostream и строковых классов. Некоторые другие проекты также занимаются разработкой частных применений стандартной библиотеки для различных конструкторских задач. Каждый производитель компиляторов C++ обязательно поставляет какую-либо реализацию этой библиотеки, так как она является очень важной частью стандарта и широко используется.

Архитектура STL была разработана Александром Степановым и Менг Ли.

Remove ads

Структура библиотеки

Thumb

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

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

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

Remove ads

Контейнеры

Суммиров вкратце
Перспектива

Контейнеры библиотеки STL можно разделить на четыре категории: последовательные, ассоциативные, контейнеры-адаптеры и псевдоконтейнеры.

Подробнее произвольного доступа с автоматическим изменением размера при добавлении/удалении элемента. Доступ по индексу за ...

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

Подробнее Метод, Описание ...

Все «полноценные» стандартные контейнеры удовлетворяют определённому набору требований (или соглашений). В приведённой ниже таблице полагается, что С — класс контейнера, содержащий объекты типа Т.

Подробнее Выражение, Возвращаемый тип ...
Remove ads

Итераторы

Суммиров вкратце
Перспектива

В библиотеке STL для доступа к элементам в качестве посредника используется обобщённая абстракция, именуемая итератором. Каждый контейнер поддерживает «свой» вид итератора, который представляет собой «модернизированный» интеллектуальный указатель[7], «знающий», как получить доступ к элементам конкретного контейнера. Стандарт C++ определяет пять категорий итераторов, описанных в следующей таблице:

Подробнее Категория, Поддерживаемые операции ...

См. также

Примечания

Loading content...

Литература

Ссылки

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads