|
Программирование >> Инициализация объектов класса, структура
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 ;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |