我觉得这个问题可能需要一个简单的特征注释,但我被卡住了。我想在程序的其他部分创建这些结构的克隆。
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
。我一定是遗漏了什么,因为这似乎不应该成为问题。
HashMap
和 Vec
没有实现 Copy
- 它们不能通过按位复制进行克隆。
这意味着你的结构也不能。
你可以在没有
Clone
的情况下推导出Copy
。就那样做。