【C++】STL 容器 - multiset 容器 ( std::multiset 容器简介 | std::multiset 容器 常用操作 api 简介 )

news2024/11/16 6:25:19

文章目录

  • 一、mulset 容器
    • 1、std::multiset 容器简介
    • 2、代码示例 - multiset 容器
  • 二、std::multiset 容器 常用操作 api 简介
    • 1、常用 api 简介
    • 2、代码示例 - multiset 容器常用操作






一、mulset 容器



1、std::multiset 容器简介


在 C++ 语言 的 标准模板库 ( STL , Standard Template Library ) 中 , 提供了 std::multiset 容器 ,

  • 该容器中的元素的 键值 可以重复 ;
  • 该容器中的元素 是 有序的 , 按照指定的规则 进行排序 ;

向 std::multiset 容器 中 插入元素时 , 不需要验证集合中是否已经存在该元素 , 直接根据排序规则 , 插入到指定的位置 ;

std::multiset 容器 不支持 将 元素插入到指定位置 ;

std::multiset 容器 也不支持 使用 下标位置 直接访问元素 ;


使用 std::multiset 容器前 , 需要 导入 set 头文件 ;

#include "set"

与 set 容器类似的 容器还有 multiset 容器 , 唯一区别是 set 中的元素只能出现一次 , multiset 中的元素可以出现多次 ;


std::multiset 容器 中的元素 不能直接修改 , 只能 先删除 原来的元素 , 然后插入新元素 ;


2、代码示例 - multiset 容器


在下面的代码中 , 创建了一个 multiset 容器 , 存储重复的元素 ;

multiset<int> myMultiSet = { 1, 2, 3, 4, 5, 4, 3, 2, 1 };

上述容器初始化时 , 会自动对容器中的元素进行排序 , 排序后的顺序如下 :

1 1 2 2 3 3 4 4 5

代码示例 :

#include "iostream"
using namespace std;
#include "set"

int main() {

    // 初始化 multiset 容器
    multiset<int> myMultiSet = { 1, 2, 3, 4, 5, 4, 3, 2, 1 };

    // 遍历打印 multiset 中的所有元素  
    for (auto& elem : myMultiSet) {
        cout << elem << " ";
    }
    cout << endl;


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

执行结果 :

1 1 2 2 3 3 4 4 5
请按任意键继续. . .

在这里插入图片描述





二、std::multiset 容器 常用操作 api 简介




1、常用 api 简介


std::multiset 容器 常用操作 : std::multiset 容器 与 std::set 容器 操作 的 接口基本相同 ;

  • insert() : 向 multiset 容器中插入一个或多个元素 ;
  • erase() : 删除 multiset 容器 中的一个或多个元素 ;
  • clear() : 清空 multiset 容器中的所有元素 ;
  • find() : 在 multiset 容器 中查找一个特定元素 ;
  • count() : 返回 multiset 容器 中 特定元素的数量 , 该函数 set 容器中只能返回 0 或 1 , 在 multiset 容器中才有意义 ;
  • lower_bound() : 返回 multiset 容器 中 大于等于 给定键值的元素 的 范围 ;
  • upper_bound() : 返回 multiset 容器 中 大于 给定键值的元素 的 范围 ;
  • equal_range() : 返回 multiset 容器 中 等于 给定键值的元素 的 范围 ;

2、代码示例 - multiset 容器常用操作


代码示例 :

#include "iostream"
using namespace std;
#include "set"

void printMS(multiset<int>& ms) {
    // 遍历打印 multiset 中的所有元素  
    for (auto& elem : ms) {
        cout << elem << " ";
    }
    cout << endl;
}


int main() {

    // 初始化 multiset 容器
    multiset<int> myMultiSet = { 1, 2, 3, 4, 5, 4, 3, 2, 1 };
    // 遍历打印容器
    printMS(myMultiSet);

    // 插入元素
    myMultiSet.insert(9);
    // 遍历打印容器
    cout << "插入元素 9 : ";
    printMS(myMultiSet);

    // 删除元素
    myMultiSet.erase(3);
    // 遍历打印容器
    cout << "删除元素 3 : ";
    printMS(myMultiSet);

    // 获取元素数量
    int count = myMultiSet.count(2);
    // 遍历打印容器
    cout << "元素 2 个数 : " << count << endl;
    printMS(myMultiSet);

    // 清空元素
    myMultiSet.clear();
    // 遍历打印容器
    cout << "清空元素 : ";
    printMS(myMultiSet);

	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

执行结果 :

1 1 2 2 3 3 4 4 5
插入元素 9 : 1 1 2 2 3 3 4 4 5 9
删除元素 3 : 1 1 2 2 4 4 5 9
元素 2 个数 : 2
1 1 2 2 4 4 5 9
清空元素 :
请按任意键继续. . .

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode每日一题】1154. 一年中的第几天(直接计算+调用库函数)

2023-12-31 文章目录 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一&#xff1a;直接计算思路&#xff1a; 方法二&#xff1a;调用库函数思路 1154. 一年中的第几天 方法一&#xff1a;直接计算 思路&#xff1a; 1.根据所给的字符串&#…

如何使用凹凸贴图和位移贴图制作逼真的模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 本教程将解释如何应用这些效应背后的理论。在以后的教程中&#xff0…

【网络技术】【Kali Linux】Wireshark嗅探(五)文件传输协议(FTP)

一、实验目的 本次实验使用Wireshark流量分析工具进行网络嗅探&#xff0c;旨在了解文件传输协议&#xff08;FTP&#xff09;的工作原理。 二、FTP协议概述 文件传输协议&#xff08;File Transfer Protocol&#xff09;是互联网上使用得最广泛的文件传输协议&#xff0c;用…

3dmax渲染全景图参数设置 3dmax云渲染插件使用

家经常在互联网上看到制作360度全景图的各种教程&#xff0c;但这些教程往往是片段的&#xff0c;并且细节解释并不充分。为此&#xff0c;以下是一些从业者常用的优良做法&#xff0c;涉及到3ds Max中的场景布局和V-Ray渲染设置&#xff0c;这些建议旨在提供一个更全面和详尽的…

前端插件库-VUE3 使用 vue-codemirror 插件

VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror &#xff0c;适用于 Vue 的 Web 代码编辑器。 第一步&#xff1a;安装 vue-codemirror & codemirror 包 &#xff0c; 以及语言包 npm install codemirror --save npm install vue-codemirror --savenpm insta…

大数据机器学习TF-IDF 算法+SnowNLP智慧旅游数据分析可视化推荐系统

文章目录 大数据机器学习TF-IDF 算法SnowNLP智慧旅游数据分析可视化推荐系统一、项目概述二、机器学习TF-IDF 算法什么是TF-IDF&#xff1f;TF-IDF介绍名词解释和数学算法 三、SnowNLP四、数据爬虫分析五、项目架构思维导图六、项目UI系统注册登录界面各省份热门城市分析城市热…

FastReport分组后半页空白问题解决办法

在使用FastReport进行分组后&#xff0c;经常会出现‘半页空白’的现象。比如按颜色进行分组&#xff0c;有白、黑、红三个颜色&#xff0c;第一类白色信息展示完成后&#xff0c;紧接着的第二类黑色信息&#xff0c;会从新的一页开始展示&#xff0c;白色信息的末尾会出现半页…

前端开发个人简历范本(2024最新版-附模板)

前端开发工程师个人简历范本> 年龄 25岁 性别 男 毕业院校 XX大学 张三 学历 邮箱 leeywai-tools.cn 本科 专业 计算机科学与技术 个人梗概 拥有扎实的前端开发技能和丰富的实践经验 善于与团队合作&#xff0c;适应能力强&#xff0c;能够快速融入团队并贡献自…

C++八股学习心得.3

1.C 数组 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素&#xff0c;最高的地址对应最后一个…

word中设置上标后括号和数字没有上下对齐,解决

问题 word中设置上标后括号和数字没有上下对齐&#xff0c;如下图 原因 因为数字的括号是中文状态下输入的&#xff0c;数字是英文状态。用户需要将其改变成用英文状态下输入 解决办法 统一成英文状态&#xff1a;选中&#xff0c;设置字体为“半角” 如果上标来自参考文献…

CEC2017(Python):五种算法(DBO、HHO、RFO、SSA、PSO)求解CEC2017

一、5种算法简介 1、蜣螂优化算法DBO 2、哈里斯鹰优化算法HHO 3、红狐优化算法RFO 4、麻雀搜索算法SSA 5、粒子群优化算法PSO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

vue-cli项目优化gzip实践

背景&#xff1a;某天测试小妹气冲冲跑过来说你的网站首次打开平均16秒&#xff0c;慢得不行啊&#xff0c;空白时间太久&#xff0c;这样客户是不收货的&#xff0c;必须优化。谁叫我们是以测试驱动开发的&#xff0c;测试妹子的话等同与老板的命令。 空白是吧&#xff0c;我…

FindMy技术用于鼠标

鼠标是计算机的标准配置之一&#xff0c;其设计初衷是为了使计算机的操作更加简便快捷&#xff0c;减少用户在操作中的负担。用户可以通过移动鼠标&#xff0c;实现光标的精确移动&#xff0c;进而选择、拖拽、复制、粘贴等操作。这种操作方式&#xff0c;使得计算机的操作变得…

病急乱投医?大众「危机」

对于外资车企&#xff08;以及合资品牌&#xff09;来说&#xff0c;面对当下电动化、智能化市场白热化竞争的局面&#xff0c;显然有些「病急乱投医」的处境。 本周&#xff0c;大众汽车被曝出正在积极寻找合作伙伴&#xff0c;以帮助实现电动化转型的低成本目标&#xff0c;即…

【AIGC】金融号角吹响,现代技术引爆财富冲击波

在金融领域&#xff0c;创新力量的推动下&#xff0c;AIGC作为一位革命者崭露头角。其独特的理念和颠覆性的方法&#xff0c;将重新定义我们对健康的认知。它不仅改变了我们对金融的理解&#xff0c;更将引领我们走向一个全新的未来。AIGC的出现&#xff0c;无疑为金融界带来了…

Swagger 教程:从零开始学习Swagger

Swagger 是一个开源的 API 设计和文档工具&#xff0c;可以帮助全栈工程师更快、更简单地设计、构建、文档化和测试 RESTful API。本篇文章将为全栈工程师介绍 Swagger 的基础知识和使用方法&#xff0c;以及如何使用 Swagger 设计、文档化和测试 RESTful API。 一、Swagger 简…

03-SpringCloud-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1&#xff0c;怎么变成了http://localhost:8081的呢&#xff1f; 1.2.源码跟踪 为什么我们只输入…

关于执行 roslaunch xxxxx yyyy.launch 后,没能进入 RViz 就卡死的问题

Problem 话不多说&#xff0c;先看图。 终端也会提示有报错&#xff08;可能是这种&#xff0c;但不确定&#xff09;&#xff1a; 这是发现问题所在之后&#xff0c;故意改错&#xff0c;然后尝试的。☝ Solution 总以为是显卡的问题&#xff0c;一直在研究怎么在 Ubuntu2…

pytorch04:网络模型创建

目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNe…

【力扣题解】P501-二叉搜索树中的众数-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f…