Chciałbym utworzyć tablicę wektorów jak tenJak zainicjować tablicę wektorów?
let v: [Vec<u8>; 10] = [Vec::new(); 10];
Jednak kompilator daje mi ten błąd:
error: the trait
core::kinds::Copy
is not implemented for the typecollections::vec::Vec<u8>
Rozumiem, że Vec nie implementuje Copy i nie jest to możliwe z tego powodu, ale dlaczego tak jest? Po wszystkim Vec jest cloneable (lub był co najmniej) i większość typów, więc dlaczego nie używać klona wewnętrznie? –
'Kopiuj' dotyczy tego, że typ danych jest dokładnie reprezentowany przez jego bajty, tak że wystarczy skopiować tylko bajty, aby skopiować wartość. Nie zrobi tego dla 'Vec', ponieważ rzeczywiste dane są przechowywane w bogate alokacji sterty muszą być własnością. Kopia pamięci 'Vec' narusza bezpieczeństwo pamięci. –
Mam ten sam problem z obsługą tablicy 256 wektorów :( – mfirry