如何使用向量在结构上派生克隆和复制?

问题描述 投票:0回答:1

我觉得这个问题可能需要一个简单的特征注释,但我被卡住了。我想在程序的其他部分创建这些结构的克隆。

use std::collections::HashMap;

#[derive(Debug, Copy, Clone)]
struct NodeMap {
    map: HashMap<usize, Node>,
}

#[derive(Debug, Copy, Clone)]
struct Node {
    destinations: Vec<usize>,
    visits_left: usize,
}

一切都应该是可克隆的。但是它说

Vec<usize>
HashMap<usize, Node>
都没有实现
Copy
。我一定是遗漏了什么,因为这似乎不应该成为问题。

rust vector hashmap clone
1个回答
4
投票

HashMap
Vec
没有实现
Copy
- 它们不能通过按位复制进行克隆。

这意味着你的结构也不能。

你可以在没有

Clone
的情况下推导出
Copy
。就那样做。

© www.soinside.com 2019 - 2024. All rights reserved.