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

相关文章

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt