diff --git a/src/doc/book/vectors.md b/src/doc/book/vectors.md index f5a543d75b1b..0eba4d40ede0 100644 --- a/src/doc/book/vectors.md +++ b/src/doc/book/vectors.md @@ -114,7 +114,30 @@ for i in v { println!("Take ownership of the vector and its element {}", i); } ``` +Note: You cannot use the vector again once you have iterated with ownership of the vector. +You can iterate the vector multiple times with reference iteration. For example, the following +code does not compile. +```rust +let mut v = vec![1, 2, 3, 4, 5]; +for i in v { + println!("Take ownership of the vector and its element {}", i); +} +for i in v { + println!("Take ownership of the vector and its element {}", i); +} +``` +Whereas the following works perfectly, +```rust +let mut v = vec![1, 2, 3, 4, 5]; +for i in &v { + println!("A mutable reference to {}", i); +} + +for i in &v { + println!("A mutable reference to {}", i); +} +``` Vectors have many more useful methods, which you can read about in [their API documentation][vec].