STL封装之multiset 超全整理

2024-02-04 21:48

本文主要是介绍STL封装之multiset 超全整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

multiset内部的原理是用平衡二叉树实现,因此无论是查找还是删除操作,时间复杂度都比较低,给我们很大的遍历。
头文件:set

#include <set>

容器命名:multiset<数据类型>容器名称

操作集:
1.插入,删除

	multiset<int> ms;ms.insert(7);//插入元素7ms.insert(10);ms.insert(5);cout << "ms contains:";while (!ms.empty())//empty判断容器ms是不是为空{cout << ' ' << *ms.begin();ms.erase(ms.begin());//删除容器首位置的元素,即(容器中最小的元素)}//ms contains: 5 7 10ms.erase(first, last);//删除容器中在区间[first, last)中的元素ms.erase(pos);//删除容器中第pos个元素

2.查找

	ms.find();//在容器中找到某一个值,找到了返回地址,找不到,返回容器末位置  for (int i=1; i<= 5; i++)ms.insert(i * 10);   // 10 20 30 40 50it=ms.find(50);//找到的是元素地址cout<<"The value of position it is:"<<*it<<endl;//The value of position it is:50ms.erase (it);//删除位置为it的元素ms.erase (ms.find(40));cout << "ms contains:";for (it = ms.begin(); it != ms.end(); it++)cout << ' ' << *it;//ms contains: 10 20 30

3.判断容器是都为空,容器大小,起始终止位置

	ms.empty();//容器为空,返回true,否则返回falsems.size();//返回容器大小ms.clear();//清除容器ms.begin();//返回容器的起始位置ms.end();//返回容器的结束位置

4.计算某一个元素出现的次数

	int myints[]= {73,12,22,73,73,12};//数某一个数出现的次数multiset<int> ms (myints,myints + 6);cout << "73 appears " << ms.count(73) << " times in ms.\n";//73 appears 3 times in ms.cout << "12 appears " << ms.count(12) << " times in ms.\n";//12 appears 2 times in ms.

5.输出容器中的所有元素

    for (multiset<int>::iterator it = ms.begin(); it != ms.end(); it++)cout <<*it<<" ";

6.swap函数

	
int myints3[]= {1,2,3,4,5,6};multiset<int> first(myints3, myints3 + 3);     // 4,19,72multiset<int> second(myints3 + 3, myints3 + 6);  // 20,20,36first.swap(second);cout << "first contains:";for (multiset<int>::iterator it = first.begin(); it != first.end(); it++)cout << *it<<" ";cout << "\nsecond contains:";for (multiset<int>::iterator it = second.begin(); it != second.end(); it++)cout << *it<<" ";//first contains:4 5 6//second contains:1 2 3

这篇关于STL封装之multiset 超全整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678884

相关文章

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。