X>(cout. ” “)): cout « “\n—-

Автор admin Пятница, 12 июня 2009 11:32

X>(cout. ” “)): cout « “\n—-\n”; // Перебор уникальных значений: for(set:iterator i = unique.begin(): i != unique.end(): i++) { pair p = mset.equal_range(*i): copy(p.first, p.second. ostream_iterator(cout. ” “)): cout « endl: } } III:- В классе X объекты сравниваются по значению поля char с. Сравнение выполняется оператором <; для мультимножества этого достаточно, потому что в нашем примере по умолчанию используется критерий less. Класс Xgen генерирует случайные объекты X, при этом символы, по которым производится сравнение, лежат в интервале от «А» до «Е». Функция main() создает контейнер multiset и заполняет его 25 объектами X, используя Xgen. Контейнер заведомо содержит одинаковые ключи. Чтобы получить набор уникальных значений, мы создаем на базе мультимножества обычное множество set (при этом задействован итератор с двумя конструкторами). Программа выводит эти значения, а затем для каждого из них вызывается функция equal_range() (в мультимножествах она делает то же, что в мультиотображениях: ищет элементы с одинаковыми ключами). В завершение программа выводит все наборы с


Комментарии закрыты.