Головна

Set <int> intSet; // створює множину значень int | Адаптери контейнерів | Алгоритми | Ітератори | До програми включений заголовочний файл ALGORITHM. В цьому файлі містяться оголошення алгоритмів STL. | Функціональні об'єкти | Функції користувача замість функціональних об'єктів | Додавання _if до аргументів | Вектори | Черги з двостороннім доступом |

Відповідність алгоритмів контейнерам

  1. VІ. Прочитайте завдання та встановіть відповідність в комбінації цифр та букв.
  2. Відповідність методів закономірностям і принципам навчання.
  3. Відповідність успішності пропускам занять без поважних причин
  4. До програми включений заголовочний файл ALGORITHM. В цьому файлі містяться оголошення алгоритмів STL.
  5. Платы за пользование контейнерами инвентарного парка
  6. Програмування алгоритмів, що розгалужуються

Кабель - це не випадкова метафора для ітераторів, оскільки саме ітератори здійснюють зв'язок між алгоритмами і контейнерами. Зосередимо увагу на двох кінцях уявного кабеля: контейнерах і алгоритмах.

Монтаж кабеля в контейнерний кінець

Якщо обмежитися розглядом лише основних контейнерів STL, доведеться констатувати той факт, що можна обійтися тільки двома категоріями ітераторів. Як показано в таблиці 9.7, векторам і чергам з двостороннім доступом взагалі все одно, який ітератор використовується, а списки, множини, мультимножини, відображення і мультивідображення сприймають все, крім ітераторів довілнього доступу.

Таблиця 9.7

Типи ітераторів, що підтримуються контейнерами

Тип ітератора Вектор Список Черга з двосто­роннім доступом Множина Мульти­множина Відобра­ження Мульти­відобра­ження
Довільного доступу * *
Двонапрям­лений * * * * * * *
Прямий * * * * * * *
Вхідний * * * * * * *
Вихідний * * * * * * *

Тепер розберемося. як же STL підключає правильний ітератор до контейнера?

При визначенні ітератора потрібно вказати, для якого типу контейнера його слід використовувати. Наприклад, якщо ми визначили список значень типу int

List <int> ilist;//список int

тоді для того, щоб визначити ітератор для нього, потрібно написати:



Ітератори як інтелектуальні вказівники | List<int>::iteratot iter; //ітератор для цілочисельного списку
© um.co.ua - учбові матеріали та реферати