multiset 总结
1 简介
multiset 是一个非常好用的 STL,简单来说就是一个可重集,可以允许序列重复。
2 声明
像其他所有 STL 一样,multiset 的声明是这样的:multiset<T> c,c1,c2;
其中 \(T\) 是一个类型,如果是结构体的话需要重载小于号。
3 操作
3.1 非变动性操作
c.size()返回集合元素大小。c.empty()返回集合是否为空,为空的话返回 \(1\) ,否则返回 \(0\) 。c.max_size()返回能容纳的元素最大数量。c1==c2判断两个可重集是否相等。
同样,可重集之间还支持判断小于等于,大于等比较操作,这里不一一展开。
两个可重集的比较类似于两个 string 类型的比较。
3.2 查找函数
c.count(T elem)返回元素 \(elem\) 的个数。c.find(T elem)返回元素值为 \(elem\) 的第一个元素所代表的迭代器,如果没有返回end()c.lower_bound(T elem),c.upper_bound(T elem)返回第一个大于等于,大于 \(elem\) 的元素所代表的迭代器,没有的话返回end()。c.equal_range(T elem)返回一对pair类型的迭代器,表示元素值所在区间。
3.3 赋值函数
c1=c2把 \(c1\) 清空。将 \(c2\) 的元素全部给 \(c1\)c1.swap(c2)将 \(c1,c2\) 元素互换。swap(c1,c2)同上。
3.4 迭代器相关函数
c.begin()返回第一个元素所代表的迭代器。c.end()返回最后一个元素的下一个位置所代表的迭代器。c.rbegin()返回最后一个元素所代表的迭代器。c.rend()返回第一个元素前面一个位置所代表的的迭代器。
3.5 插入删除函数
注意,这里必须保证参数是合法参数。
c.insert(T elem)插入元素 \(elem\) ,返回元素位置所代表的迭代器。c.insert(beg,end)插入一段区间 \([beg,end)\) 中的元素,无返回值。c.erase(T elem)删除与 \(elem\) 相等的所有元素,返回被删除元素个数。c.erase(pos)删除迭代器 \(pos\) 所代表的位置上的元素,无返回值。c.erase(beg,end)删除区间 \([beg,end)\) 之间的所有元素,无返回值。c.clear()清空可重集,无返回值。

浙公网安备 33010602011771号