Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора II Sem.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
680 Кб
Скачать
☆

12.2. Поняття про контейнерні класи

Як уже зазначалося вище, контейнери є об'єктами бібліотеки STL, основне призначення яких – зберігання даних різних типів. Контейнери, які визначаються в бібліотеці STL, представлено в табл. 12.1. У ній також вказано заголовки, які необхідно помістити у програму під час використання кожного контейнера. Незважаючи на те, що клас string також є контейнером, який дає змогу зберігати і обробляти символьні рядки, однак він у цю таблицю не внесений і розглядається нижче у цьому розділі.

Табл. 12.1. Контейнери, визначені в бібліотеці STL

Контейнер

Опнс

Заголовок

1

2

3

bitset

Набір бітів

<bitset>

deque

Дек (двобічна черга, або черга з двобічним доступом)

<deque>

list

Лінійний список

<list>

map

Відображення, зберігає пари "ключ-значення". в яких ко­жен ключ пов'язаний тільки з одним значенням

<map>

multimap

Мультнвідображення, зберігає пари "ключ-значення". в яких кожен ключ може бути пов'язаний з двома або більше значеннями

<map>

multiset

Множина, у якій кожен елемент необов'язково унікальний (мультнмножина)

<set>

priority_queue

Пріоритетна черга

<queue>

queue

Черга

<queue>

set

Множина, у якій кожен елемент унікальний

<set>

stack

Стек

<stack>

vector

Динамічний масив

<vector>

Оскільки імена типів у оголошеннях шаблонних класів довільні, контейнерні класи оголошують typedef-версії цих типів, що конкретизує імена типів. Деякі з найбільш популярних typedef-імен мають таке призначення:

size_type

Певний цілий тип. приблизно аналогічний типу size_t

reference

Посилання на елемент

const reference

Константне (const-) посилання на елемент

iterator

Ітератор

const iterator

Константний (const-) ітератор

reverse iterator

Реверсивний ітератор

const reverse iterator

Константний реверсивний ітератор

value_type

Тип значення, яке зберігається у контейнері (те саме, що і узагальнений тип туТуре)

allocator_type

Тип розподільника (пам'яті)

key_type

Тип ключа

key compare

Тип Функції, яка порівнює два ключі

mapped_type

Тип значення, яке зберігається у відображенні (те саме, що і у загальнений тип туТуре)

value_compare

Тип функції, яка порівнює два значення

Оскільки в одному розділі неможливо розглянути всі контейнери, то в наступних розділах ми подамо тільки три з них: vector, list і map. Якщо Ви зрозумієте, як працюють ці три контейнери, у Вас не буде проблем з використанням інших.