Программирование >>  Инициализация объектов класса, структура 

1 ... 380 381 382 [ 383 ] 384 385 386 ... 395


template< class InputIterator1, class InputIterator2,

class OutputIterator > OutputIterator

set intersection( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result );

template< class InputIterator1, class InputIterator2,

class OutputIterator, class Compare > OutputIterator

set intersection( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2,

Алгоритм set intersection()

OutputIterator result, Compare comp );

set intersection() строит отсортированную последовательность из элементов, встречающихся в обеих последовательностях - [first1,last1) и [first2,last2) . Например, пересечение последовательностей {0,1,2,3} и {0,2,4,6} равно {0,2}. Возвращаемый итератор указывает на элемент за последним помещенным в выходной контейнер result. В первом варианте предполагается, что обе последовательности были отсортированы с помощью оператора меньше , определенного для типа элементов контейнера; во втором для упорядочения используется указанная программистом операция comp.

template< class InputIterator1, class InputIterator2, class OutputIterator >

OutputIterator

set symmetric difference(

InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result );

template< class InputIterator1, class InputIterator2, class OutputIterator, class Compare >

OutputIterator

set symmetric difference(

InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2,

Алгоритм set symmetric difference()

OutputIterator result, Compare comp );

{0,2,4,6} равна {1,3}. Возвращаемый итератор указывает на элемент за последним помещенным в выходной контейнер result. В первом варианте предполагается, что обе последовательности были отсортированы с помощью оператора меньше , определенного для типа элементов контейнера; во втором для упорядочения используется указанная программистом операция comp.



template< class InputIteratorl, class InputIterator2,

class OutputIterator > OutputIterator

set union(InputIteratorl firstl, InputIteratorl lastl, InputIterator2 first2, InputIterator2 last2, OutputIterator result );

template< class InputIteratorl, class InputIterator2,

class OutputIterator, class Compare > OutputIterator

set union(InputIteratorl firstl, InputIteratorl lastl,

InputIterator2 first2, InputIterator2 last2,

Алгоритм set union()

OutputIterator result, Compare comp );

set union() строит отсортированную последовательность из элементов, которые встречаются либо в первой последовательности [firstl,lastl) , либо во второй -[first2,last2), либо в обеих. Например, объединение последовательностей {0,1,2,3} и {0,2,4,6} равно {0,1,2,3,4,6}. Если элемент присутствует в обеих последовательностях, то копируется экземпляр из первой. Возвращаемый итератор указывает на элемент за последним помещенным в выходной контейнер result. В первом варианте предполагается, что обе последовательности были отсортированы с помощью оператора меньше , определенного для типа элементов контейнера; во втором для упорядочения используется указанная программистом операция comp.

set symmetric difference() строит отсортированную последовательность из элементов, которые встречаются только в первой последовательности [firstl,lastl) или только во второй - [first2,last2). Например, симметрическая разность последовательностей {0,1,2,3} и {0,2,4,6} равна {1,3,4,6}. Возвращаемый итератор указывает на элемент за последним помещенным в выходной контейнер result. В первом варианте предполагается, что обе последовательности б1ли отсортированы с помощью оператора меньше , определенного для типа элементов контейнера; во втором для упорядочения используется указанная программистом операция comp.



#include <algorithm>

#include <set>

#include <string>

#include <iostream.h>

/* печатается:

элементы множества #1:

Иа-Иа Пух Пятачок Тигра

элементы множества #2:

Бука Пух Слонопотам

элементы set union():

Бука Иа-Иа Пух Пятачок Слонопотам Тигра

элементы set intersection():

элементы set difference(): Иа-Иа Пятачок Тигра

элементы sтmetric difference():

Бука Иа-Иа Пятачок Слонопотам Тигра

int main()

string str1[] = { Пух , Пятачок , Тигра , Иа-Иа }; string str2[] = { Пух , Слонопотам , Бука };

ostream iterator< string > ofile( cout, );

set<string,less<string>,allocator> set1( str1, str1+4 ); set<string,less<string>,allocator> set2( str2, str2+3 );

cout << элементы множества #1:\n\t ;

copy( set1.begin(), set1.end(), ofile ); cout << \n\n ; cout << элементы множества #2:\n\t ;

copy( set2.begin(), set2.end(), ofile ); cout << \n\n ;

set<string,less<string>,allocator> res; set union( set1.begin(), set1.end(),

set2.begin(), set2.end(),

inserter( res, res.begin() )); cout << элементы set union():\n\t ;

copy( res.begin(), res.end(), ofile ); cout << \n\n ;

res.clear();

set intersection( set1.begin(), set1.end(), set2.begin(), set2.end(), inserter( res, res.begin() ));

cout << элементы set intersection():\n\t ; copy( res.begin(), res.end(), ofile ); cout << \n\n ;

res.clear();

set difference( set1.begin(), set1.end(),

set2.begin(), set2.end(), inserter( res, res.begin() ));

cout << элементы set difference():\n\t ; copy( res.begin(), res.end(), ofile ); cout << \n\n ;

res.clear();

set symmetric difference( set1.begin(), set1.end(),

set2.begin(), set2.end(),

inserter( res, res.begin() ));

cout << элементы set symmetric difference():\n\t ; copy( res.begin(), res.end(), ofile ); cout << \n\n ;



1 ... 380 381 382 [ 383 ] 384 385 386 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика