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