C++ 标准模板库--set使用方法

一、关于set

1.本质:内部自动有序且不含重复元素的容器。

2.优点:自动去重,自动排序。

3. 常见用途:需要去除重复元素时,元素比较大或者不是 int 无法开散列表。

二、使用set

1.需要引用的头文件

#include<set>
using namespace std;

2.定义

set<typedef> name 其中typedef可以为任何基本类型,比如:

set<int> name;
set<double> name;
set<char> name;
set<node> name; //其中node为结构体类型。

3.访问

只能通过迭代器访问(iterator):

set<typedef>::iterator it; //其中的typedef可以是任意数据类型如int、double等。

遍历访问方式(唯一):

set<int> st;
st.insert(3);
st.insert(4);
st.insert(5);
st.insert(6);

for(set<int>:: iterator it = st.begin();it != st.end();it++){
    printf("%d",*it);
}

4. 常用函数

4.1 insert

用法见上段代码,可将x直接插入,并且自动去重和排序。

4.2 find

find(x)返回对应x值的迭代器,若set中不含x,则返回st.end()处的迭代器。

set<int>::iterator it = st.find(2);

4.3 erase

删除单个元素,或删除一组元素。

4.3.1 删除单个元素

先找再删:

st.erase(st.find(100));  //找到 100 ,并删除。

直接删除:

st.erase(100); //直接删除 100 的值。

4.3.2 删除一组元素

set<int>::iterator it = st.find(30);
st.erase(it,st.end());   //删除 30 以及之后的元素, 区间范围为前闭后开。

4.4 size

返回内部元素数目。

int i = st.size();

4.5 clear

清楚set中所有元素:

st.clear();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值