[Rust] 求Vec中的最值、统计特定值的数量和统计数组总和

一、简介

本文以Vec<i32>为例,介绍了在Rust中如何求 Vec<T>容器中中最大值最小值,如何确定特定值的下标、如何统计其中特定值的数量统计数组元素的总和

二、代码

0. Rust 中 Vec<T> 是什么?

在Rust中 Vec<T>为动态数组类型,跟C++中的vector<T>容器类似。对Vec<T>的详细介绍不是本文的主要内容,因此本文在此只简单介绍几种Vec<T>初始化的方法。

fn main() {// 1. 使用 Vec::new() 初始化let mut a: Vec<i32> = Vec::new();for i in 0..5 {a.push(i);}println!("a:{:?}", a);// 2. 使用 vec![] 宏 初始化 b = [0,1,2,3,4]let b: Vec<i32> = vec![0, 1, 2, 3, 4];println!("b:{:?}", b);// 3. 使用 vec![] 宏 初始化 b = [0,0,0,0,0]let c: Vec<i32> = vec![0; 5];println!("c:{:?}", c);
}

运行结果如下:

a:[0, 1, 2, 3, 4]
b:[0, 1, 2, 3, 4]
c:[0, 0, 0, 0, 0]

1. 求 Vec<T> 中的最大值、最小值

fn main() {let a = vec![0, 1, 2, 4, 5, 6, 7, 8, 9];let max_val = match a.iter().max() {Some(max_val) => max_val,_ => panic!("Failed to get maximum value of vec."),};println!("The maximum value of vec a is {}.", max_val);let min_val = match a.iter().min() {Some(min_val) => min_val,_ => panic!("Failed to get minimum value of vec."),};println!("The minimum value of vec a is {}.", min_val);
}

运行结果如下:

The maximum value of vec a is 9.
The minimum value of vec a is 0.

2. 求 Vec<T> 中的特定值的下标

fn main() {let a = vec![0, 1, 2, 4, 5, 6, 7, 8, 9];// 查找 值为"6"的第一个下标let index = match a.iter().enumerate().find(|(_, &x)| x == 6) {Some(enum_val) => enum_val.0,_ => panic!("asd"),};println!("The index of target value is :{}", index);
}

运行结果如下:

The index of target value is :5

3. 统计 Vec<T> 中特定值的数量

fn main() {let a = vec![0, 1, 1, 1, 5, 6, 7, 8, 9];// 统计 a 中值为"1"的元素个数let count = a.iter().filter(|&&x| x==1).count();println!("The number of target value is :{}", count);
}

运行结果如下:

The number of target value is :3

4. 统计 Vec<T> 中元素的总和

fn main() {let a = vec![0, 1, 1, 1, 5, 6, 7, 8, 9];let sum_a: i32 = a.iter().sum(); // 必须指定 sum_a 的数据类型,因为 sum() 作为一个 trait,并不是 Vec<f32> 的 method,无法确定最终总和的数据类型println!("The sum of vec a is {}.", sum_a);let b = vec![0.0f32, 1.0f32, 2.0f32, 3.0f32, 4.0f32];let sum_b: f32 = b.iter().sum(); // 必须指定 sum_b 的数据类型,因为 sum() 作为一个 trait,并不是 Vec<f32> 的 method,无法确定最终总和的数据类型println!("The sum of vec b is {}.", sum_b);
}

运行结果如下:

The sum of vec a is 38.
The sum of vec b is 10.

三、参考

[1.] OpenAi-ChatGPT

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

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

相关文章

基于System-Verilog的FPGA设计与仿真

一、System-Verilog System Verilog的发展 SystemVerilog 的出现是为了因应日益复杂的数位电路设计和验证需求。虽然Verilog HDL 在早期的数位电路设计中得到了广泛应用&#xff0c;但随着技术的发展和电路复杂度的增加&#xff0c;Verilog HDL 在某些方面已经显得有些不足以满…

leetcode 56合并区间

思路 合并就是首先应该按照left左边界排序&#xff0c;排完序以后&#xff0c;如果i的左边界小于等于i-1的右边界&#xff0c;说明有重合&#xff0c;此时这两个可以合并&#xff0c;右边界应该取最大值。 代码 排序 我是定义了一个类,存储左右边界&#xff0c;先将数组转化…

Linux Centos 环境下搭建RocketMq集群(双主双从)

1、下载rocketmq的包 下载 | RocketMQ 2、配置环境变量 1、编辑环境变量文件&#xff1a;vim /etc/profile2、加入如下配置&#xff1a; #rocketmq 4.9.8 ROCKETMQ_HOME/home/rocketmq/rocketmq-4.9.8 export PATH${ROCKETMQ_HOME}/bin:${PATH}3、刷新配置&#xff1a;source…

OpenStack入门体验及一键部署

OpenStack入门体验 技能目标&#xff1a; 了解云计算概念 了解OpenStack 了解OpenStack的构成 会OpenStack单机环境一键部署 从控制台认识OpenStack各项功能会 通过OpenStack控制台创建云主机 什么是云计算 云计算(cloudcomputing)是一种基于网络的超级计算模式&a…

51单片机STC89C52RC——2.1 独立按键控制LED亮灭

目录 目的 一&#xff0c;STC单片机模块 二&#xff0c;独立按键 2.1 独立按键位置 2.2 独立按键电路图 三&#xff0c;创建Keil项目 四&#xff0c;代码 五&#xff0c;代码编译、下载到51单片机 六&#xff0c;效果 目的 当独立K1按键按下时LED D1 点亮&#x…

10:Hello, World!的大小

OpenJudge - 10:Hello, World!的大小 描述 还记得在上一章里&#xff0c;我们曾经输出过的“Hello, World!”吗&#xff1f; 它虽然不是本章所涉及的基本数据类型的数据&#xff0c;但我们同样可以用sizeof函数获得它所占用的空间大小。 请编程求出它的大小&#xff0c;看看跟你…

微信小程序中实现将数据库返回的数据对象res.data赋值给两个变量,并且这两个变量互不影响,改变一个变量中对象值的同时不影响另一个变量

背景 今天在做功能需求的时候&#xff0c;遇到一个问题&#xff0c;就是想把获取到数据库的数据res.data&#xff08;res.data是对象&#xff09;&#xff0c;赋值给两个不同&#xff08;包括值和地址&#xff09;的变量action1和action2&#xff0c;其中一个变量需要将res.da…

一般简单的功能使用GIS 服务器工具还需要进行扩展开发吗?

有网友困惑怎么使用了我们的 GIS 服务器工具&#xff0c;一些简单的功能需不需要对服务器进行扩展开发&#xff1f;下面我们首先看一下标准GIS WEB服务器例如GEOSERVER&#xff0c;QGISSERVER、GIS数据快捷共享发布工具&#xff08;建立自己的地图网站&#xff09;及其它一些商…

【Python基础】内置属性

1. __name__ 查看对象名 py文件被直接运行时&#xff0c;__name__ __main__ py文件被导入使用&#xff0c;__name等于文件名 2.__doc__ 查看文档注释 3.__all__ 模块的内置属性&#xff0c;默认存放的是模块里面所有的对象(变量&#xff0c;函数名) __all__ […

【Unity】加速Unity编辑器模式启动时间

Unity每次Play之后都会Reload Script Assemblies&#xff08;重新加载脚本程序集&#xff09;。 如果我们没有使用很多Assem&#xff0c;则并不需要在播放前重新编译。 可以在设置中将此事的重新编译关闭。 在Edit > Project Settings > Editor 面板中 找到Enter Play…

OpenGL3.3_C++_Windows(3)

GLSL Shader基础 Shader&#xff08;把输入转化为输出,运行在GPU上&#xff09;&#xff1a;首先要声明版本&#xff0c;有各自的入口点main&#xff08;&#xff09;顶点数据上限:16个包含4分量&#xff1a;16 * 4 64个分量向量&#xff1a;容器vec。使用.x、.y、.z和.w&am…

算法设计与分析 实验2 分治法求最近点对

目录 一、实验目的 二、实验概述 三、实验内容 四、问题描述 1.实验基本要求 2.实验亮点 3.实验说明 五、算法原理和实现 1. 算法原理和实现 实验流程 数据生成 数据去重 2. 蛮力法 算法原理 实验伪代码 时间复杂度分析 3. 分治法 算法描述 算法内容 实验流…

*args和**kwargs这个在python中的意思

1、**kwargs 在Python中&#xff0c;是一个用于解包字典的操作符。当在函数调用时使用时&#xff0c;它会将字典中的键值对解包为关键字参数传递给函数。这样可以方便地将字典中的数据作为关键字参数传递给函数。 例如&#xff0c;如果有一个字典data {a: 1, b: 2}&#xff…

C# Winform DPI自适应方案

Winform窗体随着屏幕的DPI缩放,会引起窗体变形及字体变形。 1.设置窗体和自定义用户控件的AutoScaleMode为None 实现目标:禁止窗体因为字体大小缩放变形 因为显示的高分屏,然后操作系统的设置了字体缩放引起的。窗体默认的AutoScaleMode = Font,控件会因为高分屏自动缩放…

Java:Math 数学计算类

文章目录 一、Math二、常用API 一、Math Math 类包含执行基本数值运算的方法&#xff0c;例如基本指数、对数、平方根和三角函数。 二、常用API public class Main {public static void main(String[] args) {// 1、abs&#xff1a;求参数的绝对值System.out.println(Math.ab…

Apollo9.0 PNC源码学习之Control模块(三)—— 基于双环PID的纵向控制

本文将对Apollo的纵向控制器进行讲解&#xff0c;看完本文&#xff0c;你将会对百度Apollo的纵向控制有更深的理解 前面文章&#xff1a; Apollo9.0 PNC源码学习之Control模块&#xff08;一&#xff09; Apollo9.0 PNC源码学习之Control模块&#xff08;二&#xff09; 1 纵向…

Qt QListView自定义树状导航控件

大部分的软件都有多个页面&#xff0c;这时候就需要一个导航栏控件&#xff0c;通过在导航栏中选择某一栏&#xff0c;同时显示对应的页面。 本文代码效果如下&#xff1a; 本文的导航栏控件基于大佬 feiyangqingyun 的导航栏控件博客Qt/C编写自定义控件46-树状导航栏_qt之实现…

Web前端工程师自学:从入门到精通的全方位指南

Web前端工程师自学&#xff1a;从入门到精通的全方位指南 在数字化浪潮汹涌的今天&#xff0c;Web前端工程师成为了互联网行业不可或缺的重要角色。对于想要投身这一领域的初学者来说&#xff0c;自学是一条充满挑战与机遇的道路。本文将从四个方面、五个方面、六个方面和七个…

28.启动与暂停程序

上一个内容&#xff1a;27.设计注入功能界面 以它 27.设计注入功能界面 的代码为基础进行修改 点击添加游戏按钮之后就把游戏启动了 CWndINJ.cpp文件中修改&#xff1a; void CWndINJ::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码/*ExeLst.InsertItem(0, L…

Boom 3D软件下载及安装教程

简介&#xff1a; Boom 3D是适用于Mac和Windows系统的专业音效增强软件&#xff0c;旨在通过播放器&#xff0c;媒体或流媒体服务等介质&#xff0c;在不同类型的耳机上以3D环绕效果播放媒体内容。您无需使用昂贵的耳机或其他附加环绕音效增强器即可感受3D环绕音乐。 安 装 包…