【C++】STL 容器 - set 集合容器 ⑦ ( 查找元素 - set#find 函数 | 获取元素个数 - set#count 函数 )

文章目录

  • 一、查找元素 - set#find 函数
    • 1、函数原型 简介
    • 2、代码示例 - set#find 函数
  • 二、获取元素个数 - set#count 函数
    • 1、函数原型 简介
    • 2、代码示例 - set#find 函数






一、查找元素 - set#find 函数



1、函数原型 简介


在 C++ 语言的 STL 标准模板库 , std::set 集合容器 是一个存储唯一元素的容器 , 该容器的底层使用 红黑树 数据结构 实现 ; std::set 容器是有序的 , 存储元素时 会自动按指定规则进行排序 ;

std::set 集合容器类 提供了一个 find 成员函数 , 用于查找 集合容器中 指定值的元素 ;

std::set#find() 函数原型 如下 :

iterator find(const key_type& k) const;
  • 参数解析 :
    • 元素类型 : 参数类型 key_type 是 std::set 集合容器 元素类型 ;
    • 引用类型 : 为了避免二次拷贝 , 使用该元素类型的 引用类型 key_type& 作为参数类型 ;
  • 返回值解析 :
    • 找到指定元素 : 该 find 函数返回一个迭代器 , 该 迭代器指向找到的元素 ;
    • 没有找到元素 : 如果在 std::set 集合容器中 , 没有找到指定元素 , 则返回 指向集合末尾的迭代器 , 即 std::set::end() 迭代器 , 该迭代器不指向任何元素 , 指向最后一个元素的后一个位置 ;

2、代码示例 - set#find 函数


在下面的代码示例中 ,

首先 , 创建了一个包含整数 1 到 5 的 std::set 集合容器 ,

    // 初始化set<int> mySet = { 1, 2, 3, 4, 5 };

然后 , 使用 find 函数查找整数 3 ;

    // 调用 auto it = mySet.find(3);

最后 , 如果找到 整数 3 , 迭代器指向找到的元素 , 如果没有找到元素 , 迭代器指向末尾位置 ;
可以根据判断 返回的 迭代器是否等于 mySet.end() 值确定 ,

  • 如果等于该 末尾迭代器 值 , 说明没有找到元素 ;
  • 如果不等于该 末尾迭代器 值 , 说明找到了元素 ;
    // 如果找到元素, 迭代器指向找到的元素// 如果没有找到元素 , 迭代器指向末尾位置if (it != mySet.end()) {cout << "找到元素 : " << *it << endl;}else {cout << "未找到元素 "<< endl;}

代码示例 :

#include "iostream"
using namespace std;
#include "set"int main() {// 初始化set<int> mySet = { 1, 2, 3, 4, 5 };// 调用 auto it = mySet.find(3);// 如果找到元素, 迭代器指向找到的元素// 如果没有找到元素 , 迭代器指向末尾位置if (it != mySet.end()) {cout << "找到元素 : " << *it << endl;}else {cout << "未找到元素 "<< endl;}// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
};

执行结果 :

找到元素 : 3
请按任意键继续. . .

在这里插入图片描述





二、获取元素个数 - set#count 函数



1、函数原型 简介


std::set 集合容器 中的每个元素都是唯一的 , 对于任何元素 , 它 在集合中要么存在 , 要么不存在 , 这意味着其计数只能是 0 或 1 ;

在 std::multiset 集合容器 中 , 统计元素个数是有意义的 ;

std::set 集合容器类 提供了一个 count 成员函数 , 用于确定集合中特定元素的数量 ;

  • 对于 std::set 来说 获取的结果只能是 0 或 1 ;
  • 对于 std::multiset 容器 , 可以获取元素的个数 ;

这是为了保持与其他 关联容器的接口一致性 , 如 : std::multiset 容器 , std::set 也提供了这个函数接口 ;


count 函数原型如下 :

size_type count(const key_type& k) const;
  • 参数解析 :
    • 元素类型 : 参数类型 key_type 是 std::set 集合容器 元素类型 ;
    • 引用类型 : 为了避免二次拷贝 , 使用该元素类型的 引用类型 key_type& 作为参数类型 ;
  • 返回值解析 : 该函数返回 size_type 无符号整数类型 , 表示指定元素 k 的数量 ;
    • 如果 set 容器中 存在该值 , 返回 1 ;
    • 如果 set 容器中 不存在该值 , 返回 0 ;

2、代码示例 - set#find 函数


在下面的代码中 , 使用 count 函数来检查整数元素 3 是否存在于集合中 , 由于 std::set 集合容器可以保证元素的唯一性 ,

  • 如果元素存在 , count 函数将返回 1 ;
  • 如果元素不存在 , count 函数将返回 0 ;

代码示例 :

#include "iostream"
using namespace std;
#include "set"int main() {// 初始化set<int> mySet = { 1, 2, 3, 4, 5 };// 获取元素 3 的个数auto count = mySet.count(3);// 获取元素 6 的个数auto count2 = mySet.count(6);cout << "元素3 : " << count << endl;cout << "元素6 : " << count2 << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
};

执行结果 :

元素3 : 1
元素6 : 0
请按任意键继续. . .

在这里插入图片描述

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

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

相关文章

HCIP:rip综合实验

实验要求&#xff1a; 【R1-R2-R3-R4-R5运行RIPV2】 【R6-R7运行RIPV1】 1.使用合理IP地址规划网络&#xff0c;各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环回 4.加快网络收敛&#xff0c;减少路由条目数量&#xff0c;增…

2024年【R1快开门式压力容器操作】试题及解析及R1快开门式压力容器操作复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作试题及解析根据新R1快开门式压力容器操作考试大纲要求&#xff0c;安全生产模拟考试一点通将R1快开门式压力容器操作模拟考试试题进行汇编&#xff0c;组成一套R1快开门式压力容器操作全真模拟…

RHCE9学习指南 第12章 ssh远程登录系统和远程拷贝

很多时候服务器并没有显示器&#xff0c;我们也不可能每次都通过控制台去管理服务器&#xff0c;这时就需要远程登录。远程登录到服务器可以通过Telnet或ssh的方式。但是用Telnet登录&#xff0c;整个过程都是以明文的方式传输的&#xff0c;不安全。所以&#xff0c;建议使用s…

Java基础语法(注释,关键字,字面量,变量,数据类型,标识符,键盘录入,IDEA安装,类,模块,项目)

文章目录 day02 - Java基础语法1. 注释使用的技巧注意点 2. 关键字2.1 概念2.2 第一个关键字class 3. 字面量区分技巧 4. 变量4.1 什么是变量&#xff1f;4.2 变量的定义格式4.2.1 格式详解4.2.2 常用的数据类型4.2.3 变量的注意事项 4.3 变量的练习 5. 数据类型5.1 Java语言数…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

MendelianRandomization | 孟德尔随机化神包更新啦!~(一)(小试牛刀)

1写在前面 今天发现MendelianRandomization包更新v0.9了。&#x1f61c; 其实也算不上更新。&#x1fae0; 跟大家一起分享一下这个包做MR的用法吧。&#x1f929; 还有一个包就是TwoSampleMR&#xff0c;大家有兴趣可以去学一下。&#x1f605; 2用到的包 rm(list ls())# ins…

探索效率与可扩展性:MinIO图片服 VS FastDFS图片服

目录 1、前言 2、背景知识 2.1 Minio图片服的概述 2.2 FastDFS图片服的概述 3、性能比较 3.1 存储性能比较 3.1.1 对比上传速度和下载速度 3.1.2 比较两者的读写性能 3.2 负载均衡性能比较 4、可扩展性比较 4.1 横向扩展性性能比较 4.2 纵向扩展性性能比较 5、结语…

CCNP课程实验-Route_Path_Control_CFG

目录 实验条件网络拓朴需求 配置实现基础配置需求实现1.A---F所有区用Loopback模拟&#xff0c;地址格式为&#xff1a;XX.XX.XX.XX/32&#xff0c;其中X为路由器编号。根据拓扑宣告进对应协议。A1和A2区为特例&#xff0c;A1&#xff1a;55.55.55.0/24&#xff0c;A2&#xff…

ArkTS基本概念装饰器

目录 ArkTS基本概念 装饰器汇总 ArkTS基本概念 ArkTS是HarmonyOS的主力应用开发语言。 它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;匹配ArkUI框架&#xff0c;扩展了声明式UI、状态管理等相应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨…

Python变量与常量

第三章、变量与常量 一、标识符 1、定义 在 Python 中&#xff0c;标识符是用来标识变量、函数、类、模块或其他用户定义的对象的名称。标识符是程序员自定义的名称&#xff0c;用于在代码中标识不同的实体&#xff0c;使得代码可读性更强&#xff0c;更易于理解和维护。标识…

汽配订货系统 助力汽配行业数字化转型升级

一个汽配订货系统可以助力汽配行业数字化转型升级&#xff0c;提供以下功能和优势&#xff1a; 1. 订单管理&#xff1a;订货系统可以记录每笔订单的详细信息&#xff0c;包括客户信息、产品信息、价格、数量等&#xff0c;方便汽配商进行订单统计和分析。 2. 库存管理&#x…

mxxWechatBot微信机器人V2版本文档说明

大家伙&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用&#xff1f; 一、前言 经过不断地探索与研究&#xff0c;mxxWechatBot正式上线&#xff0c;届时全面开放使用。 mxxWechatBot&am…

59. 螺旋矩阵 II

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 输出&…

OSPF的DR与BDR-新版(16)

目录 整体拓扑 操作步骤 1.基本配置 1.1 配置R1的IP 1.2 配置R2的IP 1.3 配置R3的IP 1.4 配置R4的IP 1.5 检测R1与R4连通性 1.6 检测R1与R2连通性 1.7 检测R1与R3连通性 2.搭建基本的OSPF网络 2.1 配置R1 OSPF 2.2 配置R2 OSPF 2.3 配置R3 OSPF 2.4 配置R4 OSPF…

前端常用的实用工具与网站

1. Snipaste–截图工具 Snipaste截图软件应该算是前端必备的截图软件了&#xff0c;之前也用过其他很多截图软件&#xff0c;这个算最为方便的了。而且最重要的时&#xff0c;它可以回滚截图历史&#xff0c;并且在回滚中还能截图。下面是官网地址的网站链接&#xff0c;当然我…

Unity坦克大战开发全流程——开始场景——设置界面

开始场景——设置界面 step1&#xff1a;设置面板的背景图 照着这个来设置就行了 step2&#xff1a;写代码 关联的按钮控件 监听事件函数 注意&#xff1a;要在start函数中再写一行HideMe函数&#xff0c;以便该面板能在一开始就能隐藏自己。 再在BeginPanel脚本中调用该函数即…

【AIGC-图片生成视频系列-2】八仙过海,各显神通:AI生成视频相关汇总剖析

最近「图片生成视频系列」层出不穷&#xff0c;我拜读并结合实践&#xff08;对&#xff0c;就是手撕代码&#xff0c;有开源就撕&#xff09;&#xff0c;并对以下几篇文章的相似点以及关键点稍微做个总结&#xff1a; 一. 生成视频中图像的一致性 在图像生成视频的这个过程…

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题)

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 第一部分&#xff1a;数据安全防护(30%) 第二部分&#xff1a;数据安全管理(30%) 第三部分&#xff1a;数据安全处置(40%) 项目介绍…

10.定时器各功能分析及编码

知识汇总&#xff1a; STM32的定时器有三种&#xff0c;高级定时器&#xff0c;通用定时器&#xff0c;基本定时器 就是功能多与少的差别&#xff0c;下面来逐个解释功能&#xff1a;在此之前&#xff0c;需要对几个概念有认知 几个概念&#xff1a; 1.定时器时钟频率&…

linux安装python

文章目录 前言一、下载安装包二、安装1.安装依赖2.解压3.安装4.软链接5.验证 总结 前言 本篇文章介绍linux环境下安装python。 一、下载安装包 下载地址&#xff1a;官方网站 我们以最新的标准版为例 二、安装 1.安装依赖 yum -y install openssl-devel ncurses-devel li…