Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word 97 - 2003 (4).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
540.67 Кб
Скачать

Ітератор бібліотеці(iterator)

Ітератор бібліотеці

Ітератор бібліотеки містить визначення п'яти видів ітератори, а також ітератор риси, адаптери та функції корисності.

Категорійітераторів

Існуютьп'ятьвидів ітераторів: InputIterator , OutputIterator , ForwardIterator , BidirectionalIteratorі RandomAccessIterator .

Замість того, щобвизначитиконкретнітипи, кожнакатегоріяітераторавизначаєтьсяоперацій, якіможнавиконувати на ньому. Цевизначенняозначає, щобудь-якийтип, якийпідтримуєнеобхідніопераціїможнавикористовувати в якостіітератора, - наприклад, покажчикпідтримуєвсіоперації, необхідніRandomAccessIterator , такщопокажчикможебутивикористаний в будь-якому RandomAccessIterator неочікується.

Чотири з п'ятикатегорійітераторівможутьбутиорганізовані в ієрархії, дебільшпотужніітераторикатегорій (наприклад RandomAccessIterator ) підтримуватидіяльністьменшпотужноюкатегорії (наприкладInputIterator ). Якщоітераторпотрапляє в одну з цихкатегорій, а такожзадовольняєвимогамOutputIterator , товінназивається змінним ітератора і підтримує як вхід і вихід. Номеридлязмінюванихітераториназиваються постійними ітератори.

Категорії ітератора

Певних операцій

RandomAccessIterator

BidirectionalIterator

ForwardIterator

InputIterator

  • читати

  • приріст (без кількох проходів)

  • ходу (з дещо проходів)

  • зменшувати

  • довільний доступ

Ітератори, які відносяться до однієї з перерахованих вище категорій, а також відповідають вимогамOutputIterator називаються змінювані ітератори.

OutputIterator

  • запис

  • приріст (без кількох проходів)

Ітераторипримітивів

iterator_traits

надає єдиний інтерфейс до властивостей ітератор  (Шаблон класу)

input_iterator_tag output_iterator_tag forward_iterator_tag bidirectional_iterator_tag random_access_iterator_tag

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

Ітератор

основні ітератор  (Шаблон класу)

Розподільник за замовчуванням(allocator)

Розподільники є класи, які визначають моделі пам'яті, які будуть використовуватися деякі частини стандартної бібліотеки, а більш конкретно, по STL контейнерів .  У цьому розділі описується шаблон за замовчуванням розподільник розподільник (у нижньому регістрі). Це розподільник, що всі стандартні контейнери будуть використовувати, якщо їх останній (і додатковий) шаблону параметр не вказаний, і є єдиною зумовленою розподільник в стандартній бібліотеці.std::allocator шаблону класу за замовчуванням Allocator використовується всіма стандартними контейнерами бібліотеки, якщо не вказане користувачем розподільник не надається. Розподільник за замовчуванням є особою без громадянства, тобто, всі екземпляри даного розподільника є взаємозамінними, порівняйте рівні і може звільняти пам'ять, виділену будь-який інший примірник того ж типу розподільника.