Структура данных Multiset C для работы с множествами в языке программирования Си
Multiset – это контейнер, который содержит элементы в отсортированном порядке и позволяет хранить несколько элементов с одинаковым значением. Также, этот контейнер имеет очень быстрое время доступа к элементам и вставки новых элементов. Ключом элементов являются сами элементы, а значение - их количество в множестве.
Для работы с мультисетом необходимо подключить заголовочный файл
C++
#include
#include
using namespace std;
int main(){
multiset mset = {4, 4, 1, 2, 6, 3, 3, 3};
for (auto x:mset) cout << x << " ";
return 0;
}
В этом примере создается мультисет, в который входят 8 элементов. При выводе на экран элементы будут отсортированы и числа, которые встречаются несколько раз, будут дублироваться. Вывод на экран выглядит следующим образом:
1 2 3 3 3 4 4 6
Для проверки наличия элемента в мультисете можно использовать функцию count(), которая возвращает количество элементов в мультисете с заданным значением.
C++
#include
#include
using namespace std;
int main(){
multiset mset = {4, 4, 1, 2, 6, 3, 3, 3};
if (mset.count(4)) cout << "4 is present" << endl;
else cout << "4 is not present" << endl;
if (mset.count(7)) cout << "7 is present" << endl;
else cout << "7 is not present" << endl;
return 0;
}
При выполнении этого кода вывод на экран будет следующим:
4 is present
7 is not present
Также мультисет поддерживает функции insert() и erase(), которые используются для вставки и удаления элементов соответственно.
C++
#include
#include
using namespace std;
int main(){
multiset mset = {4, 4, 1, 2, 6, 3, 3, 3};
mset.insert(5);
mset.insert(5);
mset.erase(3);
for (auto x:mset) cout << x << " ";
return 0;
}
В этом примере мы вставляем элемент 5 два раза и удаляем один из элементов 3. После этого на экран выводятся оставшиеся элементы мультисета:
1 2 4 4 5 5 6
Multiset очень удобен для использования в тех случаях, когда требуется сохранить элементы в отсортированном порядке и позволить хранить одинаковые элементы.