русс | укр

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

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


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


Клас ostream_iterator


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


Об’єкт цього класу може використовуватися в якості параметру будь-якого алгоритму, що працює з вихідним ітератором. В прикладі 15.24 ми використаємо його як параметр copy().

 

//демонстрація ostream_iterator

#include<iostream>

#include<conio>

#include<algorithm>

#include<list>

using namespace std;

int main()

{int arr[]={10,20,30,40,50};

list<int>thelist;

for(int j=0;j<5;j++)

thelist.push_back(arr[j]);//перевести масив у список

ostream_iterator<int>ositer(cout,", ");//ітератор ostream

cout<<"\nVmist spysku:";

copy(thelist.begin(),thelist.end(),ositer);//вивід списку

cout<<endl;

getch();

return 0;

}

 

Програма 15.24

Ми визначаємо ітератор ostream для читання значень типу int. Двома параметрами конструктора є потік, в який записуватимуться значення, і рядок, що виводитиметься після кожного з них. Значенням потоку звичайно є ім’я файлу або cout, в даному випадку це cout. При записуванні в цей потік може використовуватися рядок-розділювач, що складається з довільних символів. Алгоритм copy() копіює вміст списку в потік cout. Ітератор вихідного потоку використовується в якості його третього аргументу і є іменем об’єкту призначення.

В програмі 15.25 показано, як використовувати цей підхід для запису вмісту контейнера в файл.

//демонстрація роботи ostream_iterator з файлами

#include<fstream>

#include<conio>

#include<algorithm>

#include<list>

using namespace std;

int main()

{

int arr[]={11,21,31,41,51};

list<int>thelist;

for(int j=0;j<5;j++)

thelist.push_back(arr[j]);

ofstream outfile("iter.dat");//створення файлового обєкту

ostream_iterator<int>ositer(outfile," ");//ітератор

//записати список в файл

copy(thelist.begin(),thelist.end(),ositer);

getch();

return 0;

}

 

Програма 15.25

Необхідно визначити файловий об’єкт класу ofstream та асоціювати його з конкретним файлом (в даному випадку з файлом iter.dat). При записуванні в файл між елементами вставляємо зручні розділювачі.

Виведення результату на екран в цій програмі не використовується, але ми можемо будь-яким текстовим редактором прочитати вміст файлу iter.dat.

 


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


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