hashmap储存有向图_如何在Rust中构建向量的HashMap?
将[]放到HashMap上是(现已弃用)get(..)函数的糖,该声明是:
fn get(&'a self, k: &K) -> &'a V
并返回一个常量(&)引用.但是Vec的push(..)方法需要一个& mut引用,因此错误.
你需要的是HashMap的get_mut(..)方法,它返回对该值的& mut引用.
还有一些小问题:
>调用方法时,取消引用是自动的:(* foo).bar()与foo.bar()完全相同
>你可以在你的循环中自动取消引用edge.iter(){…}中的for& edge
包括所有这些,你的功能变成:
impl digraph {
pub fn new(nodes: &Vec, edges: &Vec ) -> Option {
let mut tmp_adj_list = HashMap::new();
for &node in nodes.iter() {
tmp_adj_list.insert(node, Vec::new());
}
for &edge in edges.iter() {
let Edge{ to: to, from:from, weight:weight } = edge;
if !nodes.contains(&to) | !nodes.contains(&from) {
return None;
}
tmp_adj_list.get_mut(&from).push((to,weight))
}
Some(digraph { _vertices: nodes.clone(), _adj_list: tmp_adj_list })
}
}
hashmap储存有向图_如何在Rust中构建向量的HashMap?相关推荐
- figma设计_如何在Figma中构建设计入门套件(第1部分)
figma设计 Figma教程 (Figma Tutorial) Do you like staring at a blank canvas every time you start a new pr ...
- react网格生成_如何在React中构建实时可编辑数据网格
react网格生成 by Peter Mbanugo 彼得·姆巴努戈(Peter Mbanugo) 如何在React中构建实时可编辑数据网格 (How to Build a Real-time Edi ...
- mqtt客户端工具_如何在 Rust 中使用 MQTT
Rust 是由 Mozilla 主导开发的通用.编译型编程语言.该语言的设计准则为:安全.并发.实用,支持 函数式.并发式.过程式以及面向对象的编程风格.Rust 速度惊人且内存利用率极高.由于没有运 ...
- hashmap储存有向图_以邻接表的形式创建带权值的有向图即有向网
1.有向网的数据结构 单链表中的每个结点有3个域组成,分别为邻接点域(adjvex)表示与某顶点邻接的点在图中的位置:链域(nextarc)表示下一条边或弧的结点:数据域info存储和边或弧相关的信息 ...
- figma设计_如何在Figma中构建设计入门套件(第二部分)
figma设计 Figma教程 (Figma Tutorial) With this short, but informative Tutorial Series I aim to show you ...
- react入门代码_如何在React中构建温度控制应用程序-包括提示和入门代码
react入门代码 我们正在建立的 (What we're building) In this beginner React project, we're going to learn how to ...
- react中使用构建缓存_如何在React中构建热图
react中使用构建缓存 Heat maps are a great way of visualizing correlations among two data sets. With colors ...
- tableau可视化_如何在Tableau中构建自定义地图可视化
tableau可视化 Sometime last year, I got fascinated with bubble charts when I saw a data visualization v ...
- lstm模型java实现_如何在Keras中构建LSTM分类器模型
你想做的是: from keras.models import Sequential from keras.layers import LSTM, Dense from keras.optimizer ...
最新文章
- MySQL force Index 强制索引概述
- 机器人聊天软件c#_C#制作简易QQ聊天机器人
- Django Rest Framework
- Cyclone II FPGA系列简介(备忘)
- 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息
- 心理正常与异常的区分_【敬畏生命,拥抱生活】公政青协“善爱我”系列活动之如何识别心理正常与异常...
- OpenWHO课程 Introduction to COVID-19: methods for detection, prevention, response and control 小抄
- gromacs manual_GROMACS蛋白配体分子动力学模拟结果分析简要笔记
- 【EasyNetQ】- 发布
- 图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
- 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
- k3金蝶 java版本_金蝶KIS旗舰版和K3wise的不同
- 【RQNOJ86】智捅马蜂窝【最短路】
- C# ajax上传图片
- [CyanogenMOD移植教程] 前言:什么是CyanogenMod
- Gos —— 搭建基础环境
- 质量运营在美团点评智能支付业务测试中的初步实践
- 【踩坑实录】Mission planner+Ardupilot飞控固件配置教程
- 数据库常用的操作命令
- PHP图片验证码无法显示的解决方案
热门文章
- QTextEdit查找某个字符串更换颜色样式
- win10任务栏透明_任务栏1秒变透明,桌面瞬间高大上,美化必备!
- linux系统是否支持gpt分区,Linux下进行GPT分区
- python读取 application_python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)...
- sql join on 多表连接_阿里规范不建议多表Join,可这SQL要怎么写啊?
- vim 的tabnew带来的惊喜-建立多标签
- Space-Filling Designs
- kaggle较好的竞赛经验
- html5效果源码,10款web前端值得学习的 HTML5 效果附源码
- oracle设置导出权限,Oracle 创建 删除 用户 导出 导入 分配权限