Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Практическая работа №8.МножестваСодержание книги
Поиск на нашем сайте
Цель работы: изучение создания множеств в С++.
Задачи: 1. Изучить теоретический материал 2. Написать программу согласно индивидуальному варианту задания. 3. Ответить на контрольные вопросы. 4. Оформить отчет.
Теоретический материал
В STL есть контейнер — set, он реализует такие сущности как множество и мультимножество. По сути это контейнеры, которые содержат некоторое количество отсортированных элементов. Да, именно так, при добавлении нового элемента в множество он сразу становится на свое место так, чтобы не нарушать порядка сортировки. Потому как в множестве и мультимножестве все элементы сортируются автоматически. Но вот вопрос, в чем же разница между множествами и мультимножествами? Множества содержат только уникальные элементы, а мультимножества могут содержать дубликаты, вот такая вот небольшая разница. Для того, чтобы использовать множество или мультимножество необходимо подключить следующий заголовочный файл: #include <set>
Давайте рассмотрим простой пример использования множества в программе:
Чтобы объявить множество, необходимо подключить заголовочный файл set, это сделано в строке 2. Для объявления множества необходимо воспользоваться классом set, строка 8. То есть в восьмой строке, мы создали объект — множество с именем mySet, элементы которого имеют тип данных char. Строки 11-18 добавляют в множество новые элементы, до этого, множество было пустое. Чтобы добавить элемент в множество, достаточно воспользоваться методом insert(), которому в параметре передать новый элемент. Ну и в строке 20 как обычно выполняется вывод множества на экран, с помощью функции copy().
А теперь давайте по порядку будем разбираться, почему же у нас получился такой вывод программы. Во-первых, обратите внимание на порядок добавления элементов в коде, строки 11-18, и на реальный порядок расположения этих элементов в множестве. Порядок ввода и реальный порядок элементов в множестве — разный, это связано с тем, что элементы множества автоматически сортируются. Еще одной очень важной деталью является то, что в множество не сохранились дубликаты, хотя дубликаты были при добавлении элементов в множество. Как видно в выводе программы, каждый элемент множества уникален. Сразу же хочу обратить ваше внимание на то, что это программа была простым примером использования МНОЖЕСТВА. Давайте немного переделаем эту программу:
multiset<char> mySet; // объявили пустое множество
Изменили всего одну строку, чтобы показать пример с мультимножеством. Как вы уже могли догадаться, достаточно было вместо класса set воспользоваться классом multiset — класс мультимножества. Весь остальной код не меняем и смотрим на результат работы программы:
Результат другой, так как мультимножество может хранить дубликаты элементов, все введенный буквы — сохранились. Ну и конечно все элементы отсортировались, как и в множестве. Из всего этого стоит запомнить то, что порядок ввода элементов в множество никак не влияет на порядок хранения в множестве. А также, мультимножество умеет хранить дубликаты, в отличие от множества. Если вам нужно объявить множество,используйте класс set, если же вы хотите объявить мультимножество — воспользуйтесь классом multiset. Автоматическая сортировка элементов в множествах накладывает определенные ограничения. Например, в множествах нельзя изменить значение какого-то элемента напрямую, так как это могло бы сломать сортировку. Поэтому, если вам сильно нужно это сделать, вы сначала должны удалить старый элемент, а потом добавить новый. Рассмотрим пример программы с удалением и добавлением нового элемента:
В этом примере мы сначала удаляем элемент множества, это делается в строке 26, с помощью метода erase(). Потом мы добавляем новый элемент, строка 33. Кроме этого, обратите внимание на метод — find(), строка 25, он возвращает указатель на первый элемент множества, который равен его аргументу. Еще один интересный метод, которым мы воспользовались в программе называется — lower_bound(), строка 32. Метод lower_bound() возвращает указатель на первый элемент множества, значение которого больше либо равно аргументу. Вот вывод программы:
Задание 1. Реализовать программу для работы с множествами. Предусмотреть функции заполнения множества (на выбор пользователя: случайными числами или с клавиатуры), удаления отдельного элемента и вывода элементов на экран. Контрольные вопросы 9. Что такое множество? 10. Какие операции допустимы над множествами? 11. как реализовать множество в С++? 12. В чем отличие множества от мультимножества?
Содержание отчета 1. Титульный лист 2. Цели, задачи работы 3. Индивидуальное задание 4. Листинг программы 5. Результат работы (скриншот) 5. Ответы на контрольные вопросы
|
||||||||
|
Последнее изменение этой страницы: 2021-04-20; просмотров: 165; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.41 (0.014 с.) |