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

c++ set集合的使用方法详解set集合是c++stl库中自带的一个容器,set具有以下两个特点:1、set中的元素都是排好序的2、set集合中没有重复的元素常用操作:begin()  返回set容器的第一个元素的地址end()    返回set容器的最后一个元素地址clear()  删除set容器中的所有的元素empty()   判断set容器是否为空max_size()

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

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) 插入某个元素

#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集合中的元素为结构体时,该结构体必须实现运算符‘<’的重载

#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.net/138538.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tcpdf中文字体_pdf和tif有什么区别

    tcpdf中文字体_pdf和tif有什么区别最近在做将网页内容输出成pdf文档方面的一个项目,找了好多类,php_pdflib,fpdf,HTML_topdf等等,不过最终还是发现这个好用,究其汉字处理方面发现了写一篇文章,就抄过来了,以供大家参考。 TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。在基于PHP开发的Web应用中,…

    2022年9月7日
    1
  • python数字推盘_从零开始学编程做游戏:一个文科生策划的14周

    python数字推盘_从零开始学编程做游戏:一个文科生策划的14周点击”humansflee”按钮则人类移动一回合,点击”zombiesstalk”按钮则僵尸移动一回合。它们采取的寻路策略都是广度优先搜索。游戏不会结束,你可以在这个沙盒中给自己安排胜利条件。布置各种各样的场面看着它们行动,也还能支撑个半小时的乐趣,是到目前为止制作的可玩性最强的游戏……同样的,这个游戏也是一个具有充分扩展性的游戏。感染者会不会转化成僵尸?人类能不能拿到武器反击僵尸?僵…

    2025年6月22日
    0
  • svn 服务器日志位置,svn服务器查看日志「建议收藏」

    svn 服务器日志位置,svn服务器查看日志「建议收藏」svn服务器查看日志内容精选换一换使用自定义脚本实现应用一致性备份完成后,可以通过如下操作验证应用一致性备份结果是否成功。本章节以SQL_SERVER数据库为例进行验证。本小节主要介绍态势感知与其他云服务之间的关系。态势感知从企业主机安全(HostSecurityService,HSS)、Web应用防火墙(WebApplicationFirewall,WAF)、Anti-DDoS流量清洗…

    2022年7月19日
    59
  • pycharm中pyqt5使用方法_对中仪使用方法视频

    pycharm中pyqt5使用方法_对中仪使用方法视频PyCharm中PyQt的使用方法一级目录二级目录三级目录一级目录二级目录三级目录

    2022年8月27日
    3
  • 各种进位制转换_二进位制与十进位制之间的转换

    各种进位制转换_二进位制与十进位制之间的转换在数字后面加上不同的字母来表示不同的进位制。B(Binary)表示二进制,O(Octal)表示八进制,D(Decimal)或不加表示十进制,H(Hexadecimal)表示十六进制。例如:(1010

    2022年8月2日
    3
  • linux下查看计划任务,linux查看计划任务.docx

    linux下查看计划任务,linux查看计划任务.docxlinux查看计划任务实验案列:管理进程及设置计划任务需求:管理系统中进程  设置计划运行的系统管理任务步骤:  1管理系统中地进程  启动系统中portmap服务,确认服务运行状态,通过ps或pgrep命令查看portmap的进程信息  Ps:查看静态的进程统计信息,a:显示当前终端下的所有进程信息,u:使用以用户为主的格式输出进程信息,x:显示当前用户在所有终端下的进程信息,-e:显示系统内的…

    2022年7月15日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号