首页 > 其他分享 >rust数组

rust数组

时间:2023-04-14 10:55:08浏览次数:38  
标签:切片 let 数组 类型 array rust

概述

rust中数组分为两类:

  1. 长度固定的array
  2. 动态数组vector

array的效率比vector高,array存栈上,vector存堆上

array

fn main() {
// [类型;长度]
let a: [i32; 5] = [1, 2, 3, 4, 5];
}

数组元素类型要统一,长度要固定

数组快速初始化

rust下面这种初始化,针对有

// 类似 memset(array,0,5);
let array = [0;5]

数组切片

数组切片是对数组的引用,所以效率也比较高。

注意数组切片类型和数组类型不一样

let a :[i32;5] = [1,2,3,4,5];
let a :&[i32] = &a[1..3] 

数组类型是[T,n],切片类型是[T],因为切片是个运行期的数据结构,其长度在编译阶段不知道

注意,[u8;3][u8;4]是不同类型,数组长度也是类型的一部分

标签:切片,let,数组,类型,array,rust
From: https://www.cnblogs.com/jye159X/p/17317634.html

相关文章

  • 【前缀和】LeetCode 1031. 两个非重叠子数组的最大和
    题目链接1031.两个非重叠子数组的最大和思路代码classSolution{publicintmaxSumTwoNoOverlap(int[]nums,intfirstLen,intsecondLen){//求一个前缀和for(inti=1;i<nums.length;++i){nums[i]+=nums[i-1];}......
  • 【DP】【分治】LeetCode 53. 最大子数组和
    题目链接[https://leetcode.cn/problems/maximum-subarray/description/](53.最大子数组和"https://leetcode.cn/problems/maximum-subarray/description/")思路分析动态规划题目的时候只需要考虑最后一个阶段,因为所有的阶段转化都是相同的,考虑最后一个阶段容易发现规律在数......
  • 使用java.util.zip对生成的字节数组输出文件流 进行打包压缩(单个、批量),并返回压缩包
    废话不多说直接上代码 packagegov.test.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.util.List;importjava.util.Map;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.Zip......
  • POJ 1226 Substrings (后缀数组)
    题目地址:POJ1226将每一个字符串反转连接一次,再把所有字符串都连接起来,然后二分,找最大长度。注意与反转字符串之间不能直接相连。代码如下:#include<iostream>#include<string.h>#include<math.h>#include<queue>#include<algorithm>#include<stdlib.h>#include<ma......
  • POJ 2774 Long Long Message (后缀数组)
    题目地址:POJ2774后缀数组第一发!后缀数组真是太神奇了。。(好像每学一种新算法我都会这么说。。原理研究了好长时间,还有代码的实现,论文作者罗穗骞的代码太简洁。。好难看懂QAQ,看了好长时间。来一发后缀数组模板题,模板是用的倍增思想。代码如下:#include<iostream>#include......
  • js中一个移除对象中子数组中空值的函数
    js中一个移除对象中子集数组中空值(null,undefined)的函数functionremoveNull(obj){letdelarr=[];for(letiinobj){//排除法寻找对象类型if(typeof(obj[i])==='boolean'||typeof(obj[i])==='string'||typeof(obj[i])==......
  • 数组的元素查找排序
    顺序查找顺序查找:挨个查看要求:对数组元素的顺序没要求publicstaticvoidarraySearch(intvalue){int[]arr={4,5,6,1,9};//intvalue=1;intindex=-1;for(inti=0;i<arr.length;i++){if(arr[i]......
  • SPOJ 705 New Distinct Substrings (后缀数组)
    后缀数组模板题。由于height数组是指与排名上一个的公共前缀,所以重复的个数是height[i]个,考虑当前这个字母所构成的子串的贡献即为n-sa[i]-height[i],然后累加即可。代码如下:#include<iostream>#include<string.h>#include<math.h>#include<queue>#include<algorithm......
  • 力扣:153. 寻找旋转排序数组中的最小值
    已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4,5,6,7,0,1,2]若旋转7次,则可以得到[0,1,2,4,5,6,7]注意,数组[a[0],a[1],a[2],...,a[n-1]]旋转一次的结果为数......
  • C++ 中的数组
    数组的声明与定义数组是一种复合类型。数组的声明形如**a[d]**其中a是数组的名字,d是数组的维度。维度说明数组中元素的个数,因此必须大于0数组中的元素个数也是属于数组类型的一部分,编译的时候应该是已知的,也就是说,维度必须是一个常量表达式unsignedcnt=42; //......