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

How to Derive Clone and Copy on Struct with Vector of integers?

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

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。我一定是遗漏了什么,因为这似乎不应该成为问题。

HashMapVec 未实现 Copy - 它们无法通过按位复制进行克隆。

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

您可以在没有 Copy 的情况下推导出 Clone。就这么做吧。