Введение
В этом практическом занятии вы узнаете о работе Multiset и его реализации на языке программирования C++. Вы конкретно изучите, как использовать метод erase() в Set или Multiset для удаления элементов.
В этом практическом занятии вы узнаете о работе Multiset и его реализации на языке программирования C++. Вы конкретно изучите, как использовать метод erase() в Set или Multiset для удаления элементов.
Используйте любой текстовый редактор, чтобы создать новый файл с кодом на C++, названный main.cpp, в директории проекта ~/project.
cd ~/project
touch main.cpp
Введите следующий код в файл main.cpp. Комментарии поясняют код.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
// Функция для вывода элементов множества с использованием итератора
void show(multiset<int> s)
{
// Объявление итератора для итерирования по множеству
multiset<int>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " "; // Доступ к элементам множества с использованием *, так как i хранит адрес каждого элемента
}
cout << endl;
}
int main()
{
cout << "\n\nДобро пожаловать в лабораторию по методу erase() для STL Set\n\n\n";
cout << " ===== Программа для демонстрации работы Multiset на CPP ===== \n\n\n\n";
cout << "*** Multiset похож на set, за исключением того, что в нем могут быть несколько элементов с одинаковыми значениями. *** \n\n";
// Объявление множества (множество целых чисел)
multiset<int> s;
// Заполнение элементов с использованием метода insert()
cout << "\n\nЗаполнение Multiset целыми числами в случайном порядке."; // Multiset автоматически хранит их в порядке
s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);
cout << "\n\nКоличество элементов в Multiset: " << s.size();
cout << "\n\nЭлементы Multiset: ";
show(s);
multiset<int>::iterator it;
// Удаление всех элементов множества, которые меньше 54
s.erase(s.begin(), s.find(54));
cout << "\n\nПосле удаления всех элементов, которые меньше 54, Multiset становится: ";
for (it = s.begin(); it!= s.end(); it++)
{
cout << " " << *it;
}
cout << "\n\n\n";
return 0;
}
В терминале скомпилируйте файл main.cpp с помощью команды g++, а затем запустите скомпилированный файл.
g++ main.cpp -o main && ./main
Вы должны увидеть следующий вывод:
Добро пожаловать в лабораторию по методу erase() для STL Set
===== Программа для демонстрации работы Multiset на CPP =====
*** Multiset похож на set, за исключением того, что в нем могут быть несколько элементов с одинаковыми значениями. ***
Заполнение Multiset целыми числами в случайном порядке.
Количество элементов в Multiset: 6
Элементы Multiset: 5 5 39 39 54 82
После удаления всех элементов, которые меньше 54, Multiset становится: 54 82
Потратьте время на проверку кода и убедитесь, что вы понимаете, как метод erase() используется для удаления элементов из Multiset.
//Удаление всех элементов множества, которые меньше 54
s.erase(s.begin(), s.find(54));
В этом коде используется метод erase(), чтобы удалить все элементы в Multiset начиная с начала и до, но не включая элемент со значением 54. Таким образом, результирующее Multiset содержит только значения 54 и 82.
В этой лаборатории вы узнали, как использовать метод erase() в C++ Set или Multiset для удаления элементов. Также вы узнали, как итерироваться по множеству с использованием итератора и выводить элементы с использованием метода show(). Это полезно при отладке или проверке содержимого сложных структур данных, таких как Sets и Multisets.