Void main(). for (i = 0; i < 4; i++) cout << b[i]; // 2 3 4 5
{
int b[4], a[5] = {1, 2, 3, 4, 5}, i;
copy (a + 1, a + 5, b);
for (i = 0; i < 4; i++) cout << b[i]; // 2 3 4 5
cout << endl;
copy (a + 1, a + 5, a);
for (i = 0; i < 5; i++) cout <<a[i]; // 2 3 4 5 5
cout << endl;
copy_backward (b, b + 3,b + 4);
for (i = 0; i < 4; i++) cout << b[i]; // 2 2 3 4
cout << endl;
}
Алгоритм copyможна застосовувати також для введення і виведення послідовності. Для цього третім параметром задається потоковий ітератор:
#include <iostream>
#include <algorithm>
using namespace std;
Void main()
{
const int N = 5;
int a[N] = {1, 2, 3, 4, 5};
copy (a, a + N, ostream_iterator<int>(cout," " ) );
cout << endl;
}
Результат роботи програми:
1 2 3 4 5
У наступному прикладі розглядається копіювання вектору (vector) у список (list), використовуючи ітератори back_inserter(), front_inserter(), inserter().
#include <iostream>
#include <vector>
#include <list>
using namespace std;
Void main()
{
int a[5] = {1,2,3,4,5};
vector <int> w(a, a+5);
list <int> L;
list<int>::iterator ff = L.begin();
copy (w.begin(),w.end(), back_inserter(L));
copy (w.begin(),w.end(), front_inserter(L));
copy (w.begin(),w.end(), inserter(L,L.begin()));
cout <<"insert\n";
for (ff = L.begin();ff != L.end();ff++)
cout <<*ff <<" " ;
}
Результат роботи програми:
insert
1 2 3 4 5 5 4 3 2 1 1 2 3 4 5
Наведемо приклад використання алгоритмів fill, flll_n:
#include <iostream>
#include <algorithm>
using namespace std;
Дата добавления: 2014-12-26; просмотров: 631;