将[]放到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?相关推荐

  1. figma设计_如何在Figma中构建设计入门套件(第1部分)

    figma设计 Figma教程 (Figma Tutorial) Do you like staring at a blank canvas every time you start a new pr ...

  2. react网格生成_如何在React中构建实时可编辑数据网格

    react网格生成 by Peter Mbanugo 彼得·姆巴努戈(Peter Mbanugo) 如何在React中构建实时可编辑数据网格 (How to Build a Real-time Edi ...

  3. mqtt客户端工具_如何在 Rust 中使用 MQTT

    Rust 是由 Mozilla 主导开发的通用.编译型编程语言.该语言的设计准则为:安全.并发.实用,支持 函数式.并发式.过程式以及面向对象的编程风格.Rust 速度惊人且内存利用率极高.由于没有运 ...

  4. hashmap储存有向图_以邻接表的形式创建带权值的有向图即有向网

    1.有向网的数据结构 单链表中的每个结点有3个域组成,分别为邻接点域(adjvex)表示与某顶点邻接的点在图中的位置:链域(nextarc)表示下一条边或弧的结点:数据域info存储和边或弧相关的信息 ...

  5. figma设计_如何在Figma中构建设计入门套件(第二部分)

    figma设计 Figma教程 (Figma Tutorial) With this short, but informative Tutorial Series I aim to show you ...

  6. react入门代码_如何在React中构建温度控制应用程序-包括提示和入门代码

    react入门代码 我们正在建立的 (What we're building) In this beginner React project, we're going to learn how to ...

  7. react中使用构建缓存_如何在React中构建热图

    react中使用构建缓存 Heat maps are a great way of visualizing correlations among two data sets.  With colors ...

  8. tableau可视化_如何在Tableau中构建自定义地图可视化

    tableau可视化 Sometime last year, I got fascinated with bubble charts when I saw a data visualization v ...

  9. lstm模型java实现_如何在Keras中构建LSTM分类器模型

    你想做的是: from keras.models import Sequential from keras.layers import LSTM, Dense from keras.optimizer ...

最新文章

  1. MySQL force Index 强制索引概述
  2. 机器人聊天软件c#_C#制作简易QQ聊天机器人
  3. Django Rest Framework
  4. Cyclone II FPGA系列简介(备忘)
  5. 关于Redis配置主从复制踩到的坑,主机不显示从机的连接信息
  6. 心理正常与异常的区分_【敬畏生命,拥抱生活】公政青协“善爱我”系列活动之如何识别心理正常与异常...
  7. OpenWHO课程 Introduction to COVID-19: methods for detection, prevention, response and control 小抄
  8. gromacs manual_GROMACS蛋白配体分子动力学模拟结果分析简要笔记
  9. 【EasyNetQ】- 发布
  10. 图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
  11. 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
  12. k3金蝶 java版本_金蝶KIS旗舰版和K3wise的不同
  13. 【RQNOJ86】智捅马蜂窝【最短路】
  14. C# ajax上传图片
  15. [CyanogenMOD移植教程] 前言:什么是CyanogenMod
  16. Gos —— 搭建基础环境
  17. 质量运营在美团点评智能支付业务测试中的初步实践
  18. 【踩坑实录】Mission planner+Ardupilot飞控固件配置教程
  19. 数据库常用的操作命令
  20. PHP图片验证码无法显示的解决方案

热门文章

  1. QTextEdit查找某个字符串更换颜色样式
  2. win10任务栏透明_任务栏1秒变透明,桌面瞬间高大上,美化必备!
  3. linux系统是否支持gpt分区,Linux下进行GPT分区
  4. python读取 application_python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)...
  5. sql join on 多表连接_阿里规范不建议多表Join,可这SQL要怎么写啊?
  6. vim 的tabnew带来的惊喜-建立多标签
  7. Space-Filling Designs
  8. kaggle较好的竞赛经验
  9. html5效果源码,10款web前端值得学习的 HTML5 效果附源码
  10. oracle设置导出权限,Oracle 创建 删除 用户 导出 导入 分配权限