set/multiset容器

set容器

set容器的特性,所有元素的都会根据元素的键值自动被排序,set的元素不像map那样可以同时拥有实值和键值,set元素及是键值也是实值,所以我们不能通过迭代器改变set元素值,会破坏set结构

multiset容器

他和set容器基本一样,唯一的区别就是multiset容器可以重复,他们的底层实现都是红黑树

常用函数接口

set构造函数
set<T> st;//set默认构造函数:
mulitset<T> mst; //multiset默认构造函数:
set(const set &st);//拷贝构造函数
set赋值操作
set& operator=(const set &st);//重载等号操作符
swap(st);//交换两个集合容器
size();//返回容器中元素的数目
empty();//判断容器是否为空
set插入和删除操作
insert(elem);//在容器中插入元素。
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(elem);//删除容器中值为elem的元素。
set查找操作
find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
count(key);//查找键key的元素个数
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。
上一篇:包裹与数 —— multiset练习题


下一篇:c++关于multiset的头文件包含问题