Rust 如何将结构插入到HashMap中的向量中?

Rust 如何将结构插入到HashMap中的向量中?,rust,Rust,我的结构如下所示: pub struct MonthlyProjection{ 发布顺序:u32, 酒吧总押金:f64, } 我有一个函数,它引用了包含以下结构的向量: fn生成投影(模拟结果:&Vec) 在这个函数中,我必须按序列对MonthlyProject结构进行分组,并使用它进行一些计算 这就是我的逻辑: 创建可变的HashMap,称为result\u map 对于模拟结果向量上的循环 如果result\u map已经具有给定序列号的向量,则将项目插入该现有向量,然后更新result

我的结构如下所示:

pub struct MonthlyProjection{
发布顺序:u32,
酒吧总押金:f64,
}
我有一个函数,它引用了包含以下结构的向量:

fn生成投影(模拟结果:&Vec)
在这个函数中,我必须按序列对
MonthlyProject
结构进行分组,并使用它进行一些计算

这就是我的逻辑:

  • 创建可变的
    HashMap
    ,称为
    result\u map
  • 对于
    模拟结果
    向量上的循环
  • 如果
    result\u map
    已经具有给定序列号的向量,则将项目插入该现有向量,然后更新
    result\u map
  • 如果
    结果映射
    没有给定序列号的现有向量,则创建新向量,插入结构,并更新
    结果映射

  • 您将如何做到这一点?

    如果您不介意引入额外的依赖项,可以查看itertools:

    否则,您可以使用
    entry
    API编写for循环:

    let mut result_map:HashMap=HashMap::new();
    用于模拟结果中的投影{
    结果映射项(projection.sequence)或默认值()推送(projection);
    }
    结果图
    
    ()


    请注意,您指定了一个
    MonthlyProjection
    类型,但随后使用
    MonthlySimulationResult
    指定了函数头及其返回类型,因此不清楚那里发生了什么。此外,您还传入了对
    Vec
    的引用,但返回了一个可传递的
    MonthlySimulationResult
    ,因此您需要在那里做一些事情。

    查看
    HashMap
    上的
    entry
    方法: