Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Множества. Шаблон множества имеет два параметра: тип ключа и тип функционального объекта, определяющего отношение «меньше»:



Шаблон множества имеет два параметра: тип ключа и тип функционального объекта, определяющего отношение «меньше»:

template <class Key, class Compare = less<Key> >

class set{ /*... */ };

Таким образом, если объявить некоторое множество set<int> s1 с опущенным вторым параметром шаблона, то по умолчанию для упорядочения членов множества будет использован предикат less<int>.

Точно так же можно опустить второй параметр при объявлении множества set<MyClass>s2, если в классе MyClass определена операция operator<().

Для использования контейнеров типа set необходимо подключить заголовочный файл <set>.

Имеется три способа определить объект типа set:

set<int> setl; // создается пустое множество

int а[5] = { 1, 2, 3, 4, 5 };

set<int> set2(a, а + 5): // инициализация копированием массива

set<int> set3(set2): // инициализация другим множеством

Для вставки элементов в множество можно использовать метод insert (), для удаления — метод erase (). Также к множествам применимы общие для всех контейнеров методы, указанные в табл. 2.

Во всех ассоциативных контейнерах есть метод count (), возвращающий количество объектов с заданным ключом. Так как и в множествах, и в словарях все ключи уникальны, то метод count () возвращает либо 0, если элемент не обнаружен, либо 1.

Для множеств библиотека содержит некоторые специальные алгоритмы, в частности, реализующие традиционные теоретико-множественные операции. Эти алгоритмы перечислены ниже.

Алгоритм includes выполняет проверку включения одной последовательности в другую.

Результат равен true в том случае, когда каждый элемент последовательности [first2, last2) содержится в последовательности [firstl, lastl).

Алгоритм set_intersection создает отсортированное пересечение множеств, то есть множество, содержащее только те элементы, которые одновременно входят и в первое, и во второе множество.

Алгоритм set_union создает отсортированное объединение множеств, то есть множество, содержащее элементы первого и второго множества без повторяющихся элементов.

В следующей программе показано использование этих алгоритмов:

int main() {

const int N = 5;

string sl[N] = {"Bill", "Jessica", "Ben", "Mary", "Monica"};

string s2[N] = {"Sju", "Monica","John","Bill","Sju"};

typedef set<string> Sets;

Sets A(s1, s1 + N):

Sets B(s2, s2 + N);





Дата публикования: 2014-11-28; Прочитано: 180 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...