русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Адаптери контейнерів


Дата додавання: 2014-04-22; переглядів: 976.


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

Стеки, черги і пріоритетні черги можуть створюватися з різних послідовних контейнерів, хоча, наприклад, черга з двостороннім доступом використовується теж досить часто. В таблиці 10.4 показані абстрактні типи і послідовні контейнери, що використовуються для їх реалізації.

Таблиця 15.4

Контейнери, що реалізуються за допомогою адаптерів

Контейнер Реалізація Характеристики
Стек Реалізується як вектор, список або черга з двостороннім доступом Проштовхування і виштовхування даних тільки з одного кінця
Черга Реалізується як список або черга з двостороннім доступом Проштовхування з одного кінця, виштовхування з іншого
Пріоритетна черга Реалізується як вектор або черга з двостороннім доступом Проштовхування з одного кінця у випадковому порядку, виштовхування – впорядковане, з іншого кінця

Для практичного використання цих класів необхідно використовувати наче шаблон тв шаблоні. Наприклад, нехай маємо об’єкт класу «стек», що містить значення int, породжений класом «черга з двостороннім доступом» (deque)

stack< deque<int> >astak

Щоб компілятор не видавав повідомлення про помилку, інтерпретуючи >> як оператор, слід обов’язково робити пропуск між двома закриваючими кутовими дужками.

 


<== попередня лекція | наступна лекція ==>
Асоціативні контейнери | Алгоритми


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн