
Collections
Vec<T>, String, HashMap, HashSet, iterators, collect, ownership with collections
1Which method allows adding an element to the end of a Vec<T>?
Which method allows adding an element to the end of a Vec<T>?
回答
The push() method adds an element to the end of the vector, increasing its size by 1. This operation has amortized O(1) complexity because the vector may need to reallocate memory if capacity is exceeded. To add multiple elements, extend() or append() can be used depending on the needs.
2What is the main difference between String and &str in Rust?
What is the main difference between String and &str in Rust?
回答
String is an owned type stored on the heap, mutable and resizable. &str is an immutable reference to a UTF-8 sequence, often called a 'string slice'. String owns its data and can be modified, while &str borrows existing data without owning it. This distinction is fundamental for memory management in Rust.
3How to create a new empty Vec<i32> in Rust?
How to create a new empty Vec<i32> in Rust?
回答
Vec::new() creates an empty vector without initial allocation. The vec![] macro can also create an empty vector, but Vec::new() is the standard explicit method. The generic type can be inferred or explicitly specified with turbofish syntax Vec::<i32>::new() or by type annotation.
What does the get() method return on a Vec<T>?
Which data structure to use for associating keys with values with O(1) average access?
+17 面接問題