当前位置: 首页 > news >正文

翼讯自助网站建设贷款网站哪家好

翼讯自助网站,建设贷款网站哪家好,免费的黄金软件,巩义网站建设方案表上次说到rust所有权看看它和其他语言比有什么优势,就以python为例 # Python3 def test():a [1, 3, -4, 7, 9]print(a[4])b a # 所有权没有发生转移del b[4]print(a[4]) # 由于b做了删除,导致a再度访问报数组越界if __name__ __main__:test() 运行结…

上次说到rust所有权看看它和其他语言比有什么优势,就以python为例


# Python3
def test():a = [1, 3, -4, 7, 9]print(a[4])b = a  # 所有权没有发生转移del b[4]print(a[4])  # 由于b做了删除,导致a再度访问报数组越界if __name__ == '__main__':test()

运行结果

再看rust

fn main() {let a = vec![1, 3, -4, 7, 9];println!("{}", a[4]);let mut b = a; // a is moved to b 所有权已发生转移b.pop();println!("{}", a[4]);  // 编译直接报错,无法运行}

rust通过所有权机制,让一个值或者一块内存只能有一个变量来控制的方式,一旦出现多个变量访问,编译直接报错,根本上杜绝了数组越界等内存错误。这点明显强于Python,Python要想解决此问题只能考虑使用深拷贝

import copy# Python3
def test():a = [1, 3, -4, 7, 9]print(a[4])b = copy.deepcopy(a)  # 使用深拷贝del b[4]print(a[4])  # 使用深拷贝a,b是两块不同内存不会受到影响if __name__ == '__main__':test()

vec动态数组, 如果学过Java,可以暂时把它当做ArrayList, 除了内存管理不一样,其他核心功能都一样。

下面练习一道算法题

704. 二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
 

提示:

你可以假设 nums 中的所有元素是不重复的。
n 将在 [1, 10000]之间。
nums 的每个元素都将在 [-9999, 9999]之间。


pub fn search(nums: Vec<i32>, target: i32) -> i32 {let mut left = 0;// len()函数返回值是usize类型,要转义为i32,不要直接使用let mut right = (nums.len() - 1) as i32;while left <= right {let middle = (left + right) / 2  ;if nums[middle as usize] > target {right = middle - 1;}else if nums[middle as usize] < target {left = middle + 1;}else {return  middle;}}return  -1;}
fn main() {let nums = vec![-1,0,3,5,9,12];println!("{}", search(nums, 9));
}

总结这道题是一道基础题,之前其他语言也做过,不难, 需要注意的一点nums.len()的返回值是usize类型需要先转换i32,然后在nums[middle as usize]在转换了,有人可能疑惑这不是多此一举,所有类型都是声明usize不就行了吗,答案是不行,因为提交leetcode会报数组越界问题。

http://www.yayakq.cn/news/438278/

相关文章:

  • 音乐网站后台管理模板工装公司联系方式
  • 公司网站开发项目外包方案html5做网站的总结
  • 做微信小程序哪个网站好网站网站建设策划书
  • 详情页制作西安seo整站优化
  • 免费搭建私人网站线上销售平台有哪些
  • 最全网站源码分享做垂直导购网站还行吗
  • 先做网站还是先做app怎么在虚拟主机上建网站
  • 曲沃网站建设制作一个软件的过程
  • 平凉市城乡建设局网站设计网站推荐素材网站
  • 新开的网站建设公司如何推广注册安全工程师的报考条件
  • flash做的个人网站wordpress 位置地图
  • 网站seo优化工具高级seo是什么职位
  • 时尚网站网页设计wordpress 选择插件
  • 广州最好的商城网站制作上海联通 网站备案
  • 海航科技网站建设网站开发 发表文章
  • 个人建设门户网站 如何备案域名wordpress
  • 中国十大知名网站wordpress怎么注册用户名
  • 网站内容建设培训通知手机网站什么技术开发
  • 做外贸网站如何内蒙古建设执业资格注册中心网站
  • 张家港专业做网站wordpress 微信通知
  • 家教网站建设定制型网站制作明细报价表
  • word文档做网站哪有定制开发
  • 免费的站内推广方式有哪些投资网站网站源码
  • 免费建设网站的画出外贸移动端网站模板
  • 网站建设公司 青岛工作室网站需要备案吗
  • 网站设计模板安全吗做网站php语言用什么工具
  • 无锡网站制作系统wordpress无法
  • 南京建设网站维护西安房产网58
  • 快递物流公司网站模板网站空间控制面板软件
  • 网站建设及网络推广麻涌镇网站建设