русс | укр

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

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


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


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


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


Черга з двостороннім доступом (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;

}

 

Програма 15.16

 

 


<== попередня лекція | наступна лекція ==>
Методи reverse(), merge() іunique() | Ітератори


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