当前位置: 首页 > news >正文

【STL——set与multiset容器】

引入

set和multiset是C++ STL中的两种关联容器,基于红黑树(平衡二叉树)实现,用于存储一组有序的元素。两者的主要区别在于元素的唯一性:

set中的元素必须唯一,不允许重复。
multiset允许存储重复的元素。

set

按惯例先添头文件

#include

构造与赋值
	set<int> st;       //默认构造函数set<int> st1(st);  //拷贝构造函数set<int> st2 = st; //重载等号操作符(也属拷贝构造函数)set<int> st3;st3 = st2;    //赋值构造函数
插入与删除

在这里插入图片描述

void test() {set<int> s1;     s1.insert(10);s1.insert(90);s1.insert(30);s1.insert(20);printSet(s1); //默认顺序输出:10、20、30、90s1.erase(s1.begin()); //删除s1的第一个元素(10)printSet(s1); //输出:20、30、90s1.erase(30); //删除30printSet(s1); //输出:20、90s1.clear();   //清空printSet(s1); //无输出
}
大小与交换

在这里插入图片描述

void test() {  set<int> s1 = { 10,90,30 }; //简便写法printSet(s1); //默认顺序输出:10、30、90cout <<"s1现在的大小为:" <<s1.size() << endl; //size=3s1.erase(s1.begin()); //删除s1的第一个元素(10)printSet(s1); //输出:30、90cout << "s1现在的大小为:" << s1.size() << endl; //size=2set<int> s2 = { 20,39,48,10 };s2.swap(s1);printSet(s1); //输出:10、20、39、48s1.clear();   //清空cout << "s1现在的大小为:" << s1.size() << endl; //size=0if (s1.empty()) {cout << "s1为空" << endl;}else {cout << "s1不为空" << endl;}printSet(s1); //无输出
}
查找与统计

在这里插入图片描述

void test() {  set<int> s1 = { 10,90,30 }; //简便写法//set<int>::iterator i=s1.find(90);auto i=s1.find(90); //两种写法都可以if (i != s1.end()) {cout << *i << endl;}else {cout << "未找到该元素" << endl;}cout <<s1.count(30)<< endl; //30仅有1个,输出1s1.insert(30);s1.insert(30);cout << s1.count(30) << endl; //set不允许有重复元素出现,仍输出1
}

Multiset

Multiset允许存储相同元素,但在使用find()函数返回时返回的是参数匹配的第一个元素的迭代器,即存在多个相同元素时返回第一个。如果没有符合的参数则结束迭代器。
此外,在insert()时还能插入一段数据。

void test() {  multiset<int> ms;ms.insert(20);ms.insert(90);ms.insert(10);ms.insert(20);ms.insert(70);printSet(ms); //输出:10、20、20、70、90int it = 0;for (auto i = ms.begin(); i != ms.find(70); i++, it++) {}cout << "发现20的位置在" << it << endl; //输出:3multiset<int> ms1;auto i = ms.begin()++;i++;ms1.insert(ms.begin(), i); //这里和上篇相同,不能直接给begin做加减printSet(ms1); 
}
http://www.dtcms.com/a/546809.html

相关文章:

  • 泉州企业网站制作哪家好如何查看网站是否开启gzip
  • 建设银行 网站无法打开社区平安建设基层网站
  • dede企业网站源码wordpress怎么保持缩略图尺寸不变
  • NFS文件共享
  • 丹棱县 网站建设大型自助建站平台
  • 泰钢材企业网站源码wordpress wp_postmeta
  • 福建省住房城乡和城乡建设厅网站爱采购下载app
  • 做网站入门看什么书重庆企业网站开发服务
  • windows Qt6 vs2022编译配置以及使用QtXlsx库【超详细】
  • 网站文风wordpress 获取第一张图片
  • tp框架做网站的优点免费网络电话无限打不用充值
  • 做网站有送企业邮箱吗政务大厅网站建设管理制度
  • 营销型网站建设专家外贸在哪些网站开发客户
  • spring boot项目快速整合xxl-job实现定时任务
  • 防疫站24小时在线咨询建设教育网站怎么样
  • 将电脑做的网站放到外网住建部网站2015年城市建设统计
  • 站酷设计网站官网入口插画设计济宁亿峰科技做网站一年多少费用
  • 网站备案域名更改公司濮阳网络直播
  • 自学网站建设多久如何做网络推广人员
  • 荣成做网站中国建设法律法规网官方网站
  • 临海建设局官方网站文昌网站建设 myvodo
  • 运城住房和建设局网站新网站建设一般多少钱
  • W3C WSDL 活动:推动Web服务互操作性的关键力量
  • 婚庆网站建设的需求分析wordpress注册授权
  • 三维重建【0-D】3D Gaussian Splatting:相机标定原理与步骤
  • 中国企业商务网站建设河南seo网站多少钱
  • 做预算兼职的网站东莞设计网站企业
  • 网站建设项目工作分解结构建设银行交学费网站
  • Python导入opencv报错“DLL load failed while importing cv2: 找不到指定的模块”排错过程记录
  • 黄金外汇网站建设网站备案在哪查