C++ 中multiset 的使用
multiset 的说明
C++ 中 multiset 它的主要特点就是元素会自动排序切允许有重复的元素(set中不允许元素重复)
multiset 同样也是STL中的模板使用的时候 需要先引入 #include <set>
#include <iostream>
#include <string>
using namespace std;
#include <set>int main()
{// 创建一个空的setmultiset<int> a;a.insert(1);a.insert(5);a.insert(2);a.insert(3);a.insert(4);a.insert(2); // 允许重复这个可以插入cout << a.size() << endl; // 允许重复,打印结果为 6//使用迭代器遍历元素set<int>::iterator it;for (it = a.begin(); it != a.end(); it++){cout << *it << endl; // 自动排序,打印结果为122345}
}
multiset 方法说明
函数 | 说明 |
begin | multiset中第一个元素的引用 |
end | multiset中最后一个元素的引用 |
size | 返回multiset的个数 |
empty | 判断集合是否为空,为空返回true |
find(x) | 返回一个指向x的迭代器,如果x不存在,则返回的迭代器等于end |
upper_bound(x) | 返回一个指向x的迭代器 |
lower_bound(x) |
返回一个迭代器指向位于x之前切紧邻x |
clear | 清空集合元素 |
rbegin | 返回一个反向迭代器,指向向量末尾元素之后 |
rend | 返回一个反向迭代器,指向向量起始元素 |
erase(i) | 删除第i位置的元素(注意不能直接为数组,需要用begin或者end) |
erase(start,end) |
删除指定的元素返回,注意是前包含后不包含,里面不能是数字 |
insert(i,x) | 把 i 插入到x位置 |
insert(i,x,y) | 把 i 插入到x到y 的位置 |
swap | 交换2个集合的内容 |
demo 练习
#include <iostream>
#include <string>
using namespace std;
#include <set>int main()
{// 声明一个setmultiset<char> iset;// 获取默认set的sizecout << iset.size() << endl;// 插入元素iset.insert('A');iset.insert('B');iset.insert('C');iset.insert('D');// 获取set的sizecout << iset.size() << endl;//使用迭代器遍历元素set<char>::iterator it;for (it = iset.begin(); it != iset.end(); it++){cout << *it << endl;}// find查找it = iset.find('D');if (it == iset.end()){cout << "未找到" << endl;}else{cout << "找到了" << endl;}// set判空if (iset.empty()){cout << "set为空" << endl;}else{cout << "set不为空" << endl;}// 清空setiset.clear();return 0;
}
C++ 中multiset 的使用相关推荐
- guava中Multiset、HashMultiset使用分析
guava包中提供了Multiset接口,这个接口没有实现java.util.Set接口,Set接口规定里面是不能够放入重复的元素,如果放入重复元素会被覆盖掉的:然而Multiset接口却是可以放入重 ...
- oracle中multiset,集合操作符Multiset
MULTISET和CAST联合可以将一个结果集转为嵌套表. 下面的信息摘自ORACLE 10G联机文档,仅供参考. Multiset operators combine the results of ...
- STL:set/multiset用法详解
集合 使用set或multiset之前,必须加入头文件<set> Set.multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素. sets和mul ...
- GNU Make 使用手册(于凤昌中译版)
GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...
- 编程之美2.5 寻找最大的K个数
在一个数组中寻找最大的K个数,我们首先说一种非常简单的方法,利用快速排序中的分割算法,即我们经常看见的partition.这个函数会返回一个 int 类型的值,这个值代表的是前一半数字和后一半数字的分 ...
- STL库:map和set
STL库:map和set 文章目录 STL库:map和set 1.STL库中set的官方介绍 2.set的常用接口 3.set的总结 4.STL库中multiset的官方介绍 5.STL库中map的官 ...
- 【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)
导览 练习地址 糕点 晋级人数 回转寿司 神秘的苹果树 总结 练习地址 点此前往练习 糕点 小团的蛋糕铺长期霸占着美团APP中"蛋糕奶茶"栏目的首位,因此总会吸引各路食客前来探店. ...
- LeetBook哈希表专题题解(详解/一题多解)
哈希表 文章目录 哈希表 设计哈希表 设计哈希集合(set) (超大数组法) (拉链法1(list实现)) (拉链法2(模拟实现单链表+虚拟头节点)) (拉链法3(模拟单链表不叫虚拟头节点)) 设计哈 ...
- Stack (30)
Stack (30) 难度: ⭐⭐⭐⭐ 题目连接 题目描述 Stack is one of the most fundamental data structures, which is based o ...
最新文章
- python实现数据库连接池_Python实现Mysql数据库连接池
- Docker源码分析(八):Docker Container网络(下)
- 工业用微型计算机(6)-指令系统(3)
- java和python对比----1:
- 【LeetCode笔记】236. 二叉树的最近公共祖先(Java、二叉树、DFS)
- linux java 获取路径怎么写_linux中java获取路径怎么写?
- Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l
- verilog加法器_【HDL系列】Kogge-Stone加法器原理与设计
- 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
- [BZOJ4540][HNOI2016]序列(莫队)
- 第三章 磁共振成像原理
- 新老系统迁移及整合方案
- 使用eolink优雅地进行API接口管理
- 淘宝数据魔方技术架构解析
- 家庭局域网_组建家庭无线局域网需要哪些硬件设备?
- 倍加福光电传感器OBE10M-18GM60-SE5-V1
- 关于《Python绝技:运用Python成为顶级黑客》的学习笔记
- Android解析服务器Json数据实例
- Linux设备驱动---OMAP3630 Linux I2C总线驱动分析(2)
- 安装mujoco遇到一些坑
热门文章
- docker :open /var/lib/docker/tmp/GetImageBlob318829910: no such file or directory异常解决
- Oracle根据日期区间查询Date类型的数据
- centos 安装 node12以及yarn
- 全面理解Python中的类型提示(Type Hints)
- 物联网安全Wi-Fi漫游
- 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
- 3D车道线检测:Gen-LaneNet
- 给手绘图着色(添加颜色或色彩):CVPR2020论文点评
- Android系统的启动过程
- TCP/UDP协议基本概念