русс | укр

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

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


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


Доступ до даних


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


В контейнерах, зв’язаних з ітераторами довільного доступу (векторах і чергах з двостороннім доступом), ітерація відбувається дуже просто за допомогою оператора []. Такі контейнери, як списки, що не підтримують довільного доступу, вимагають особливого підходу. Раніше ми використовували «деструктивне читання» (читання з руйнуванням даних) для виведення і одночасного виштовхування елементів ітератора. Практичніше було б визначити ітератор для контейнера. Розглянемо приклад 15.17.

#include<iostream>

#include<conio>

#include<list>

#include<algorithm>

using namespace std;

int main()

{

int arr[]={2,4,6,8};

list<int>thelist;

for(int k=0;k<4;k++)

thelist.push_back(arr[k]);//заповнити список масивом

list<int>::iterator iter; //ітератор для цілочисельного списку

for(iter=thelist.begin();iter!=thelist.end();iter++)

cout<<*iter<<" "; //вивести список

cout<<endl;

getch();

return 0;

}

 

Програма 15.17

Програма просто виводить вміст контейнера thelist.

 

Ми визначаємо ітератор типу list<int>, що відповідає типу контейнера. Як і у випадку зі змінною-вказівником, до початку використання ітератора слід задати його значення. В циклі for проходить його ініціалізація значенням методу thelist.begin, це вказівник на початок контейнера. Ітератор може бути інкрементований оператором ++ для проходження по елементах, а оператором * можна здійснити його «розадресацію». Можна навіть порівнювати його з чим-небудь за допомогою оператора != і виходити з циклу при досягненні ітератором кінця контейнера.

 


<== попередня лекція | наступна лекція ==>
Монтаж «кабеля» в алгоритм | Вставка даних


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