首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >c++ set集合的使用方法详解

c++ set集合的使用方法详解

作者头像
全栈程序员站长
发布2022-09-02 11:54:12
发布2022-09-02 11:54:12
1.3K0
举报

大家好,又见面了,我是你们的朋友全栈君。

set集合是c++ stl库中自带的一个容器,set具有以下两个特点:

1、set中的元素都是排好序的

2、set集合中没有重复的元素

常用操作:

begin()    返回set容器的第一个元素的地址

end()      返回set容器的最后一个元素地址

clear()    删除set容器中的所有的元素

empty()     判断set容器是否为空

max_size()   返回set容器可能包含的元素最大个数

size()      返回当前set容器中的元素个数

erase(it) 删除迭代器指针it处元素

insert(a) 插入某个元素

代码语言:javascript
复制
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
	set<int>s;
	s.insert(3); 
	s.insert(1);
	s.insert(2);
	s.insert(1);
	set<int>::iterator it;            
	for(it=s.begin();it!=s.end();it++)  //使用迭代器进行遍历 
	{
		printf("%d\n",*it);
	}
	return 0;
}
//输出结果 : 1 2 3     一共插入了4个数,但是集合中只有3个数并且是有序的,可见之前说过的set集合的两个特点,有序和不重复。 

当set集合中的元素为结构体时,该结构体必须实现运算符‘<’的重载

代码语言:javascript
复制
#include<stdio.h>
#include<set>
#include<string>
using namespace std;
struct People
{
	string name;
	int age;
	bool operator <(const People p) const  //运算符重载 
	{
		return age<p.age;       //按照年龄由小到大进行排序 
	}
}; 
int main()
{	
	set<People>s;
	s.insert((People){"张三",14});
	s.insert((People){"李四",16});
	s.insert((People){"王二麻子",10});
	set<People>::iterator it;            
	for(it=s.begin();it!=s.end();it++)  //使用迭代器进行遍历 
	{
		printf("姓名:%s 年龄:%d\n",(*it).name.c_str(),(*it).age);
	}
	return 0;
}
/*
输出结果
 姓名:王二麻子 年龄:10
姓名:张三 年龄:14
姓名:李四 年龄:16 
*/ 

可以看到结果是按照年龄由小到大的顺序排列。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138538.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档