C++中的Set的用法整理

目录

1:Set的介绍

2:Set的用法

(1)begin()和end()函数:

(2)count()函数

(3)erase()函数

 (4)insert()函数

(5)find()函数

(6)一些其他的简单函数:



1:Set的介绍

          对于Set,我个人的理解是这样的,Set是叫关联容器,当然了,这个名称太专业(其实我记不住),所以我们只要记住它是集合的意思就行了,既然是集合的话,以前数学我们学到的集合的性质有互异性,也就是不能有重复的元素,还有无序性,这里无序性在这里不是适用的啊,它是默认按照升序(就是从小到大的意思)的排列方式排好的。

2:Set的用法

              对于Set的用法,我们需要重点掌握关于它的函数。在这里我们先定义一个Set集合名称,名称叫做a

(1)begin()和end()函数:

     a.begin()和a.end()它们是有返回值的,返回值分别是第一个指向该元素的迭代器和指向最后一个元素迭代器的下一个位置,(这里迭代器不懂我们可以把它理解成指针啊)既然我们知道了,开头和结尾,那我们将集合中的元素如何输出啊,这事就用到了这个叫迭代器哦。具体如何我们看代码,代码上我也注释好了,大家仔细看啊!

#include<bits/stdc++.h>
using namespace std;
int main()
{
	set<int>a;
	a.insert(23);//a.insert就是往里面添加元素
	a.insert(6);
	a.insert(88);
	a.insert(1);
	a.insert(152);
	a.insert(0);
    set<int>::iterator it;//这里的it我们可以理解成迭代器的名称,it前面的我们当成固定模板
    //大家记住模板就行哈。
    for(it=a.begin();it!=a.end();it++){
    	cout<<*it<<" ";//这里it前面的*我们就把它理解成指针的意思啊
	}
	cout<<endl;
	for(auto hh=a.begin();hh!=a.end();hh++){
		cout<<*hh<<" ";
		//这里的auto我们可以理解成它是迭代器的类型名,就像int,double,char它们一样
	}
	return 0;
}

(2)count()函数

   a.count()是查找出现在集合中的元素的个数,因为集合的互异性嘛,所以它的返回值要么是1要么是0,一般也可以用它来判断某个元素是否在该集合中。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	set<int>a;
	a.insert(2);
	a.insert(6);
	a.insert(88);
	cout<<"2出现的次数是"<<a.count(2)<<endl;
	cout<<"0出现的次数是"<<a.count(0)<<endl;
	return 0;
}

(3)erase()函数

     a.erase函数是用来删除指定的元素,参数只有一个,并且是你想要删除的元素,无返回值(当然了,这只是我个人的理解的哈,如果错了,还请指正啊)。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	set<int>a;
	a.insert(23);//a.insert就是往里面添加元素
	a.insert(6);
	a.insert(88);
	a.insert(1);
	a.insert(152);
	a.insert(0);
    for(auto it=a.begin();it!=a.end();it++){
    	cout<<*it<<" ";
	}
	cout<<endl;
	a.erase(23);
	for(auto it=a.begin();it!=a.end();it++){
    	cout<<*it<<" ";
	}
	return 0;
}

 (4)insert()函数

     a.insert()的作用就是往集合中添加元素,它的参数也是只有一个,就是你想要添加的元素,无返回值。(这是我个人的理解哈)。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	set<int>a;
	a.insert(23);//a.insert就是往里面添加元素
	a.insert(6);
	a.insert(88);
	a.insert(1);
	a.insert(152);
	a.insert(0);
    for(auto it=a.begin();it!=a.end();it++){
    	cout<<*it<<" ";
	}
	return 0;
}

(5)find()函数

    a.find()用来查找你要寻找的元素是否在集合中,它的返回值是指向该元素的迭代器

#include<bits/stdc++.h>
using namespace std;
int main()
{
	set<int>a;
	a.insert(23);//a.insert就是往里面添加元素
	a.insert(6);
	a.insert(88);
	a.insert(1);
	a.insert(152);
	a.insert(0);
	auto ig=a.find(1123);
    for(auto it=a.begin();it!=a.end();it++){
    	if(ig==it){
    		cout<<"找到了";
    		break;
		}
		else if(ig==a.end()){
			cout<<"没找到";
			break;
		}
	}
	return 0;
}

(6)一些其他的简单函数:

    a.size()的作用是得出集合中的元素个数。

    a.empty()是判断该集合是否为空。 

    a.clear()是用来清空集合中的元素。

当然了,还有一些其他的函数,不过不常用,大家如果想学习可以自行查找的哈(其实是我菜和懒,嘿嘿!!!)

猜你喜欢

转载自blog.csdn.net/gaoqiandr/article/details/125394052