Головна

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

Черги з двостороннім доступом

  1. Варіант 30. Оптимізація виробництва з двосторонніми оптимізаціями на обсяги сировини
  2. Особенности измерения РЧ параметров в современных системах связи. Измерение мощности в системах с множественным доступом. Тестирование многоантенных систем
  3. Техніка репозиції та Фіксації відламків при переломах вилицевої кістки та дуги внутрішньоротовим доступом за Вілєджем
  4. Черги-масиви

Черга з двостороннім доступом (deque) являє собою щось схоже і на вектор, і на зв'язаний список. Як і вектор, цей тип контейнера підтримує довільний доступ []. Як і в списку, доступ може бути одержаний до кінця і до початку черги. В цілому це нагадує вектор з двома кінцями. Підтримуються функції front(), push_front і pop_front().

Для векторів і двосторонніх черг пам'ять резервується по-різному. Вектор завжди займає суміжні ділянки пам'яті. Тому при його розростанні резервується нова ділянка пам'яті, де контейнер може поміститися цілком. Натомість черга з двостороннім доступом може розміщуватися в кількох сегментах пам'яті, не обов'язково суміжних. В цьому є і плюси, і мінуси. Черга гарантовано буде розміщена в пам'яті, однак доступ до сегментованих об'єктів буде повільнішим.

Далі приведений приклад програми, яка працює з чергою:

#include<iostream>

#include<conio>

#include<deque>

using namespace std;

int main()

{deque<int>deq;

deq.push_back(30);

deq.push_back(40);

deq.push_back(50); //проштовхування елемента в кінець

deq.push_front(20);

deq.push_front(10);//проштовхування елемента в початок

deq[2]=33;//зміна довільного елементу контейнера

for(int j=0;j<deq.size();j++)

cout<<deq[j]<<" ";//вивести елемент

cout<<endl;

getch();

return 0;

}

Програма 26.16

5. ІТЕРАТОРИ

Поняття про ітератори є стержневим для успішного виконання дій у STL. Вони відіграють подвійну роль: як «інтелектуальних вказівників» і як мостів, що з'єднують алгоритми з контейнерами.



Вектори | Ітератори як інтелектуальні вказівники
© um.co.ua - учбові матеріали та реферати