Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MYлекция14.docx
Скачиваний:
9
Добавлен:
22.02.2015
Размер:
104.27 Кб
Скачать

Библиотека стандартных шаблонов (stl)

Классы в С++ - прекрасный механизм для создания библиотеки структур данных. С помощью шаблонов классов реализованы специальные библиотеки. В составе С++ реализована встроенная библиотека стандартных шаблонов (STLstandard template library). В ней реализованы наиболее популярные структуры данных и алгоритмы работы с ними. Так как библиотека реализована на шаблонах, то структуры и алгоритмы, находящиеся в ней, применимы почти ко всем типам данных.

Три наиболее важных сущности STL:

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

  • алгоритмы – функции для обработки данных, находящихся в контейнерах. В STL алгоритмы представлены в виде шаблонных функций. Но они не являются методами классов-контейнеров. Их можно использовать для обработки своих данных. Это независимые функции, их можно использовать и в массивах, и в собственных контейнерах.

  • итераторы – это обобщение концепции указателей, они ссылаются на элементы контейнера. Их можно инкрементировать и они будут последовательно ссылаться на все элементы контейнера.

Алгоритмы используют итераторы для работы с объектами контейнеров.

Контейнерcобъектами Алгоритмы Контейнерcобъектами

Контейнеры подразделяются:

=последовательныеобеспечивают хранение конечного количества однотипных данных в виде непрерывной последовательности, каждый имеет свою позицию в последовательности, каждый (кроме крайних) имеет по два соседа: слева и справа. К последовательным контейнерам относятся: массив, вектор, список, двусторонняя очередь. На основе этих базовых контейнеров создаются так называемые специализированные контейнерыстек, очередь, приоритетная очередь. Их называют адаптерами.

=ассоциативные имеют иную организацию данных. Доступ к данным выполняется с помощью ключа. Основой для ассоциативных контейнеров служат сбалансированные деревья поиска. К ассоциативным контейнерам относятся: словари (map), словари с дубликатами (multimap), множества (set), множества с дубликатами (multiset), битовые множества (bitset).Основные контейнерные классы с заголовочными файлами, где они определены:

описания

класс

заголовок

вектор

vector

<vector>

двунаправленный список

list

<list >

двусторонняя очередь

deque

< deque>

стек

stack

< stack>

очередь

queue

< queue>

очередь с приоритетами

priority_ queue

< queue>

словари

map

< map>

словари с дубликатами

multimap

< map>

множество

set

<set>

множество с дубликатами

multiset

<set>

множество битов

bitset

< bitset>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]