Müssen wir einen Destruktor für eine verknüpfte Liste manuell erstellen?
Ich leseLearning Rust mit zu vielen verknüpften Listen und ich bin verwirrt darüber, warum die verknüpfte Liste (Stapel) braucht einen Destruktor.
Ich denke, wenn der Listenwert außerhalb des Bereichs liegt, werden die Liste selbst und alle Knoten bereinigt. Ist es nur zur Demonstration?
Ich versuche die Version mit und ohne manuellen Destruktor zu vergleichen, und ich fand, dass der "ohne Destruktor" eine bessere Leistung hat:
for _ in 1..30000000 {
let mut list = List::new();
list.push(1);
assert_eq!(list.pop(), Some(1));
}
Mit manuellem Destruktor:
real 0m11.216s
user 0m11.192s
sys 0m 0.020s
Ohne manuellen Destruktor:
real 0m9.071s
user 0m9.044s
sys 0m0.004s