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

相关文章

数论入门整理(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 、显卡、内存等一些硬件元件。

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

C++ STL 适配器

系列文章目录 模板特例化,偏特化,左右值引用 https://blog.csdn.net/surfaceyan/article/details/126794013 C++ STL 关联容器 https://blog.csdn.net/surfaceyan/article/details/127414434 C++ STL 序列式容器(二) https://blog.csdn.net/surfac

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

哈希表的封装和位图

文章目录 2 封装2.1 基础框架2.2 迭代器(1)2.3 迭代器(2) 3. 位图3.1 问题引入3.2 左移和右移?3.3 位图的实现3.4 位图的题目3.5 位图的应用 2 封装 2.1 基础框架 文章 有了前面map和set封装的经验,容易写出下面的代码 // UnorderedSet.h#pragma once#include "HashTable.h"

JavaScript整理笔记

JavaScript笔记 JavaScriptJavaScript简介快速入门JavaScript用法基础语法注释关键字显示数据输出innerHTML innerText属性返回值的区别调试 数据类型和变量数据类型数字(Number)字符串(String)布尔值(Boolean)null(空值)和undefined(未定义)数组(Array)对象(Object)函数(Function) 变量

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机