📅  最后修改于: 2023-12-03 14:59:52.064000             🧑  作者: Mango
在C++的STL(标准模板库)中,有一个常用到的数据结构叫做“多集”。本文将介绍多集的定义、特点以及使用方法。
多集即多重集合,也称为“袋子”。与普通集合不同的是,多重集合中的元素可以重复出现。STL中提供了多集的实现,即multiset
类。
#include <iostream>
#include <set>
using namespace std;
int main()
{
multiset<int> s = {1, 2, 3, 2, 4};
for (auto it = s.begin(); it != s.end(); it++)
{
cout << *it << " ";
}
//输出结果为:1 2 2 3 4
return 0;
}
可以使用insert()
方法向多集中插入元素。
multiset<int> s;
s.insert(1);
s.insert(2);
s.insert(2);
s.insert(3);
s.insert(4);
可以使用count()
方法查询元素在多集中出现的次数。
multiset<int> s = {1, 2, 3, 2, 4};
cout << s.count(2); //输出结果为:2
可以使用erase()
方法删除多集中的某一个或者一组元素。
multiset<int> s = {1, 2, 3, 2, 4};
s.erase(2); //删除一个2
s.erase(s.find(2), s.find(3)); //删除一组2和3
可以使用clear()
方法清空多集中的所有元素。
multiset<int> s = {1, 2, 3, 2, 4};
s.clear(); //清空多集s
多集是一种可以存储相同元素且无序的数据结构,STL中提供了multiset
类来实现这种数据结构。多集可以使用insert()
方法插入元素,使用count()
方法查询元素出现次数,使用erase()
方法删除元素,使用clear()
方法清空多集。由于多集不支持下标访问和随机遍历,通常使用迭代器遍历多集中的元素。