【C++STL库】set常用函数学习

set(集合),是一个内部自动有序不含重复元素的容器。

使用set的前提

  • #include <set>
  • using namespace std;

1 set的定义

set<typename> name;
//与vector类似,下面是一些例子
set<int> name;
set<double> name;
set<char> name;
set<node> name; //结构体
//set数组
set<typename> Arrayname[arraySize];
//例如 set<int> a[100];

2 set容器内元素的访问

//set只能通过迭代器访问
set<typename>::iterator it;
//例子
set<int>::iterator it;
set<char>::iterator it;

//通过*it访问set里的元素,注意:只有vector与string支持*(it+i)
for(set<int>::iterator it=st.begin();it!=st.end();it++){
    printf("%d ",*it);
}

3 set常用函数实例解析

//1. insert() 将x插入set,自动排序和去重
st.insert(x);

//2. find() 返回值为value的迭代器
st.find(value);
set<int>::iterator it = st.find(2); //例子,在set中查找2,返回其迭代器

//3. erase() 2种用法
//3.1 删除单个元素,可以结合find()来用
st.erase(it); //it为迭代器
st.erase(st.find(200)); //利用find()找到100,然后用erase删除它
///
st.srase(value); //value为所需要删除元素的值
st.erase(100); //删除set中值为100的元素

//3.2 删除一个区间内的所有元素
st.erase(first,last); //[first,last)
//例子
set<int>::iterator it = st.find(30);
st.erase(it,st.end()); //删除元素30至set末尾之间的元素

//4. size() 获得元素的个数
st.size();

//5. clear() 清空set元素
st.clear();

4 set的常见用途

主要作用:自动去重并升序排序

  • multiset 处理不唯一的情况
  • unorder_set 以散列代替set内部的红黑树实现,适合只去重但不排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值