17.Set的常见用法详解优化-[STL模板]

1.set的定义—一个无重复有序的容器


<mark>一个元素</mark>

set<typename> name;
/* 例如 set<int> a; set<char> b; */

<mark>一个数组</mark>

set<int> a[100];

2.set元素的访问

<mark>只能迭代器访问</mark>

set<int>::iterator it;  //迭代器的定义 

通过:*it访问元素


迭代器访问实例

#include <bits/stdc++.h>
using namespace std;
int main()
{
	set<int> a;
	a.insert(5);    //插入
	a.insert(3);
	a.insert(1);
	a.insert(3);
	set<int>::iterator it=a.begin();  ////令it指向容器a的首地址
	for(it ;it!=a.end();it++)
	cout<<*it;
	return 0;
}

输入:5 3 1 3
输出:1 3 5
自动去重且排序


3.set常用函数

(1)insert(x)
将元素x插入到容器

(2)find(x)
寻找值为x的迭代器

(3)erase()

erase(it) 删除it元素的迭代器
可以使用a.erase(a.find(x)) 利用find()找到x 再用erase删除

erase(x)删除容器中的所有x <mark>[ 常用 ]</mark>

erase(first,last) 删除[ first,last)间的元素 左闭右开

(4)size()
获取set的元素总数

(5)clear()
清空set的所有元素