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

Rust 学习笔记:关于 HashMap 的练习题

Rust 学习笔记:关于 HashMap 的练习题

  • Rust 学习笔记:关于 HashMap 的练习题
    • 以下代码能否通过编译?若能,输出是?
    • 以下代码能否通过编译?若能,输出是?

Rust 学习笔记:关于 HashMap 的练习题

以下代码能否通过编译?若能,输出是?

use std::collections::HashMap;fn main() {let mut h = HashMap::new();h.insert("k1", 0);let v1 = &h["k1"];h.insert("k2", 1);let v2 = &h["k2"];println!("{} {}", v1, v2);
}

不能通过编译。v1 持有了不可变引用导致第二次 insert 报错。

insert() 是对 HashMap 的可变借用,而 &[] 是对 HashMap 的不可变借用,如果两个借用的作用域有交叠的话就可能引发潜在的内存安全问题。

以下代码能否通过编译?若能,输出是?

use std::collections::HashMap;fn main() {let mut h: HashMap<char, Vec<usize>> = HashMap::new();for (i, c ) in "hello!".chars().enumerate() {h.entry(c).or_insert(Vec::new()).push(i);}let mut sum = 0;for i in h.get(&'l').unwrap() {sum += *i;}println!("{}", sum);
}

可以通过编译。输出 5。

http://www.xdnf.cn/news/6961.html

相关文章:

  • Flink 的任务槽和槽共享
  • c++从入门到精通(五)--异常处理,命名空间,多继承与虚继承
  • 第一次经历项目上线
  • HarmonyOS NEXT~鸿蒙应用上架指南:HarmonyOS应用发布全流程解析
  • 大型语言模型中的QKV与多头注意力机制解析
  • 前端面经12 函数柯里化
  • redisson分布式锁实现原理归纳总结
  • 注册表设置windows背景护眼色
  • 机器学习,深度学习,神经网络,深度神经网络之间有何区别?
  • 【Linux网络】DNS与ICMP
  • vue使用Pinia实现不同页面共享token
  • OAuth2.0
  • ai agent(智能体)开发 python高级应用6:用crawl4ai0.6.3抓取分类 形成每日简报
  • 洛谷 全排列问题
  • 【从设置到上传的全过程】本地多个hexo博客,怎么设置ssh才不会互相影响
  • 星火杯大模型应用创新赛学习笔记——datawhale
  • ArrayList-集合使用
  • AGI大模型(20):混合检索之rank_bm25库来实现词法搜索
  • LVGL- 圆弧形状控件
  • 制作大风车动画
  • 【高斯拟合最终篇】Levenberg-Marquardt(LM)算法
  • Vue Router——路由基础详解(二)
  • Datawhale PyPOTS时间序列5月第3次笔记
  • Python实例题:Python百行制作登陆系统
  • Java中synchronized 关键字
  • Spring MVC 如何处理文件上传? 需要哪些配置和依赖?如何在 Controller 中接收上传的文件 (MultipartFile)?
  • Selenium无法定位元素的几种解决方案详解
  • AgentCPM-GUI,清华联合面壁智能开源的端侧GUI智能体模型
  • 远程主机状态监控-GPU服务器状态监控-深度学习服务器状态监控
  • 使用ts-node搭建typescript运行环境