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 的使用相关推荐

  1. guava中Multiset、HashMultiset使用分析

    guava包中提供了Multiset接口,这个接口没有实现java.util.Set接口,Set接口规定里面是不能够放入重复的元素,如果放入重复元素会被覆盖掉的:然而Multiset接口却是可以放入重 ...

  2. oracle中multiset,集合操作符Multiset

    MULTISET和CAST联合可以将一个结果集转为嵌套表. 下面的信息摘自ORACLE 10G联机文档,仅供参考. Multiset operators combine the results of ...

  3. STL:set/multiset用法详解

    集合 使用set或multiset之前,必须加入头文件<set> Set.multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素. sets和mul ...

  4. GNU Make 使用手册(于凤昌中译版)

    GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...

  5. 编程之美2.5 寻找最大的K个数

    在一个数组中寻找最大的K个数,我们首先说一种非常简单的方法,利用快速排序中的分割算法,即我们经常看见的partition.这个函数会返回一个 int 类型的值,这个值代表的是前一半数字和后一半数字的分 ...

  6. STL库:map和set

    STL库:map和set 文章目录 STL库:map和set 1.STL库中set的官方介绍 2.set的常用接口 3.set的总结 4.STL库中multiset的官方介绍 5.STL库中map的官 ...

  7. 【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)

    导览 练习地址 糕点 晋级人数 回转寿司 神秘的苹果树 总结 练习地址 点此前往练习 糕点 小团的蛋糕铺长期霸占着美团APP中"蛋糕奶茶"栏目的首位,因此总会吸引各路食客前来探店. ...

  8. LeetBook哈希表专题题解(详解/一题多解)

    哈希表 文章目录 哈希表 设计哈希表 设计哈希集合(set) (超大数组法) (拉链法1(list实现)) (拉链法2(模拟实现单链表+虚拟头节点)) (拉链法3(模拟单链表不叫虚拟头节点)) 设计哈 ...

  9. Stack (30)

    Stack (30) 难度: ⭐⭐⭐⭐ 题目连接 题目描述 Stack is one of the most fundamental data structures, which is based o ...

最新文章

  1. python实现数据库连接池_Python实现Mysql数据库连接池
  2. Docker源码分析(八):Docker Container网络(下)
  3. 工业用微型计算机(6)-指令系统(3)
  4. java和python对比----1:
  5. 【LeetCode笔记】236. 二叉树的最近公共祖先(Java、二叉树、DFS)
  6. linux java 获取路径怎么写_linux中java获取路径怎么写?
  7. Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l
  8. verilog加法器_【HDL系列】Kogge-Stone加法器原理与设计
  9. 【推荐实践】模型化召回在陌陌社交推荐的探索和应用.pdf(附下载链接)
  10. [BZOJ4540][HNOI2016]序列(莫队)
  11. 第三章 磁共振成像原理
  12. 新老系统迁移及整合方案
  13. 使用eolink优雅地进行API接口管理
  14. 淘宝数据魔方技术架构解析
  15. 家庭局域网_组建家庭无线局域网需要哪些硬件设备?
  16. 倍加福光电传感器OBE10M-18GM60-SE5-V1
  17. 关于《Python绝技:运用Python成为顶级黑客》的学习笔记
  18. Android解析服务器Json数据实例
  19. Linux设备驱动---OMAP3630 Linux I2C总线驱动分析(2)
  20. 安装mujoco遇到一些坑

热门文章

  1. docker :open /var/lib/docker/tmp/GetImageBlob318829910: no such file or directory异常解决
  2. Oracle根据日期区间查询Date类型的数据
  3. centos 安装 node12以及yarn
  4. 全面理解Python中的类型提示(Type Hints)
  5. 物联网安全Wi-Fi漫游
  6. 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
  7. 3D车道线检测:Gen-LaneNet
  8. 给手绘图着色(添加颜色或色彩):CVPR2020论文点评
  9. Android系统的启动过程
  10. TCP/UDP协议基本概念