在这:
#[derive(Debug)]
struct Person {
name: String,
}
fn main() {
let mut persons = Vec::<Person>::with_capacity(3);
let mut personrefs = Vec::<&Person>::with_capacity(persons.capacity());
for x in 0..persons.capacity() {
let person = Person {
name: format!("Alice-{}", x),
};
personrefs.push(&person);
persons.push(person);
}
println!("persons are {:#?}", persons);
}
Run Code Online (Sandbox Code Playgroud)
我有点理解为什么Rust不允许推送&person,但Rust解决这个问题的方法是什么?
我有一个Vec"拥有" Person的,但我也想将人们映射到其他一些数据而不触及内存中的拥有Vec或复制Person.喜欢,有一个collections::HashMap<&Person, SomeOtherData>.如果同时HashMap与Vec具有相同的寿命,不会生锈知道什么时候取消分配PersonS'
rust ×1