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();
发布了17 篇原创文章 · 获赞 4 · 访问量 447

猜你喜欢

转载自blog.csdn.net/qq_39117553/article/details/104901484
今日推荐