Мультимножество (Multiset) в C++ с использованием STL

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии мы научимся реализовывать Multiset из Стандартной библиотеки (Standard Library, STL) на языке C++. Multiset похож на Set тем, что он хранит уникальные значения, но отличается от Set тем, что позволяет дубликаты и не предоставляет средств индексации, связанных с вектором (vector).

Создание файла C++ в директории проекта

Мы создадим новый файл с именем main.cpp в директории ~/project с помощью следующей команды:

touch ~/project/main.cpp

Добавление заголовочных файлов

Добавьте следующие заголовочные файлы для Multiset, потоков ввода/вывода (Input/Output Stream), Стандартной библиотеки (Standard Library) и итераторов (Iterator), как показано в примере ниже:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

Объявление Multiset

Объявите Multiset для целочисленных значений, как показано ниже:

multiset<int> s;

Вставка значений в Multiset

Вставьте элементы в Multiset с использованием метода insert(), как показано в примере кода ниже. Он вставит числа 5, 39, 5, 82, 39 и 54 в Multiset:

s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);

Вывод размера Multiset и обход элементов Multiset

Выведите количество элементов в Multiset, обратившись к свойству size(), и переберите все элементы Multiset с использованием итератора, как показано ниже:

cout << "The number of elements in the Multiset : " << s.size() << "\n";

multiset<int>::iterator it;
cout << "\nElements of the Multiset : ";
for (it = s.begin(); it!= s.end(); it++)
    cout << *it << " ";
cout << endl;

Удаление элементов, меньших X

Удалите все элементы, меньшие заданного значения x, с использованием метода erase(). Метод erase() удаляет все элементы от начала Multiset до заданного значения, за исключением элемента с заданным значением, как показано ниже:

s.erase(s.begin(), s.find(x));

Запуск и компиляция программы

Скомпилируйте программу с использованием терминала. Используйте следующую команду для компиляции программы:

g++ main.cpp -o main && ./main

Проверка вывода

После успешного запуска программы вы получите следующий вывод:

The number of elements in the Multiset : 6

Elements of the Multiset : 5 5 39 39 54 82

Резюме

В этом практическом занятии (лабораторной работе) был дан обзор мультимножеств (Multisets) в C++ с использованием стандартной библиотеки шаблонов (STL). Мы рассмотрели, как объявить мультимножество, вставить в него значения и изучили его методы. Мы также узнали, как удалить элементы, меньшие определенного значения, и как обойти мультимножество с использованием итераторов. Наконец, мы запустили и скомпилировали код с помощью терминала, чтобы проверить вывод.