auto merge of #15894 : treeman/rust/vec-doc, r=alexcrichton

Fill in examples for missing methods. Opt for `vec![]` instead of `vec!()`.
This commit is contained in:
bors 2014-07-22 21:26:14 +00:00
commit 43d84bf32e
1 changed files with 233 additions and 139 deletions

View File

@ -35,8 +35,7 @@ pub static PTR_MARKER: u8 = 0;
///
/// # Examples
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let mut vec = Vec::new();
/// vec.push(1i);
/// vec.push(2i);
@ -46,16 +45,45 @@ pub static PTR_MARKER: u8 = 0;
///
/// assert_eq!(vec.pop(), Some(2));
/// assert_eq!(vec.len(), 1);
///
/// *vec.get_mut(0) = 7i;
/// assert_eq!(vec[0], 7);
///
/// vec.push_all([1, 2, 3]);
///
/// for x in vec.iter() {
/// println!("{}", x);
/// }
/// assert_eq!(vec, vec![7i, 1, 2, 3]);
/// ```
///
/// The `vec!` macro is provided to make initialization more convenient:
///
/// ```rust
/// ```
/// let mut vec = vec![1i, 2i, 3i];
/// vec.push(4);
/// assert_eq!(vec, vec![1, 2, 3, 4]);
/// ```
///
/// Use a `Vec` as an efficient stack:
///
/// ```
/// let mut stack = Vec::new();
///
/// stack.push(1i);
/// stack.push(2i);
/// stack.push(3i);
///
/// loop {
/// let top = match stack.pop() {
/// None => break, // empty
/// Some(x) => x,
/// };
/// // Prints 3, 2, 1
/// println!("{}", top);
/// }
/// ```
///
/// # Capacity and reallocation
///
/// The capacity of a vector is the amount of space allocated for any future
@ -86,8 +114,7 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let mut vec: Vec<int> = Vec::new();
/// ```
#[inline]
@ -112,8 +139,7 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let mut vec: Vec<int> = Vec::with_capacity(10);
///
/// // The vector contains no items, even though it has capacity for more
@ -148,10 +174,9 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let vec = Vec::from_fn(3, |idx| idx * 2);
/// assert_eq!(vec, vec!(0, 2, 4));
/// assert_eq!(vec, vec![0, 2, 4]);
/// ```
#[inline]
pub fn from_fn(length: uint, op: |uint| -> T) -> Vec<T> {
@ -175,6 +200,37 @@ impl<T> Vec<T> {
/// - there must be `length` valid instances of type `T` at the
/// beginning of that allocation
/// - `ptr` must be allocated by the default `Vec` allocator
///
/// # Example
///
/// ```
/// use std::ptr;
/// use std::mem;
///
/// fn main() {
/// let mut v = vec![1i, 2, 3];
///
/// // Pull out the various important pieces of information about `v`
/// let p = v.as_mut_ptr();
/// let len = v.len();
/// let cap = v.capacity();
///
/// unsafe {
/// // Cast `v` into the void: no destructor run, so we are in
/// // complete control of the allocation to which `p` points.
/// mem::forget(v);
///
/// // Overwrite memory with 4, 5, 6
/// for i in range(0, len as int) {
/// ptr::write(p.offset(i), 4 + i);
/// }
///
/// // Put everything back together into a Vec
/// let rebuilt = Vec::from_raw_parts(len, cap, p);
/// assert_eq!(rebuilt, vec![4i, 5i, 6i]);
/// }
/// }
/// ```
pub unsafe fn from_raw_parts(length: uint, capacity: uint,
ptr: *mut T) -> Vec<T> {
Vec { len: length, cap: capacity, ptr: ptr }
@ -188,11 +244,11 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2i, 3i, 4i);
/// ```
/// let vec = vec![1i, 2i, 3i, 4i];
/// let (even, odd) = vec.partition(|&n| n % 2 == 0);
/// assert_eq!(even, vec!(2, 4));
/// assert_eq!(odd, vec!(1, 3));
/// assert_eq!(even, vec![2, 4]);
/// assert_eq!(odd, vec![1, 3]);
/// ```
#[inline]
pub fn partition(self, f: |&T| -> bool) -> (Vec<T>, Vec<T>) {
@ -217,10 +273,10 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2i);
/// ```
/// let vec = vec![1i, 2i];
/// let vec = vec.append([3i, 4i]);
/// assert_eq!(vec, vec!(1, 2, 3, 4));
/// assert_eq!(vec, vec![1, 2, 3, 4]);
/// ```
#[inline]
pub fn append(mut self, second: &[T]) -> Vec<T> {
@ -232,8 +288,7 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let slice = [1i, 2, 3];
/// let vec = Vec::from_slice(slice);
/// ```
@ -249,8 +304,7 @@ impl<T: Clone> Vec<T> {
/// Creates a `Vec` with `length` copies of `value`.
///
/// # Example
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let vec = Vec::from_elem(3, "hi");
/// println!("{}", vec); // prints [hi, hi, hi]
/// ```
@ -275,10 +329,10 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i);
/// ```
/// let mut vec = vec![1i];
/// vec.push_all([2i, 3, 4]);
/// assert_eq!(vec, vec!(1, 2, 3, 4));
/// assert_eq!(vec, vec![1, 2, 3, 4]);
/// ```
#[inline]
pub fn push_all(&mut self, other: &[T]) {
@ -305,10 +359,10 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!("hello");
/// ```
/// let mut vec = vec!["hello"];
/// vec.grow(2, &("world"));
/// assert_eq!(vec, vec!("hello", "world", "world"));
/// assert_eq!(vec, vec!["hello", "world", "world"]);
/// ```
pub fn grow(&mut self, n: uint, value: &T) {
self.reserve_additional(n);
@ -329,11 +383,11 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!("a", "b", "c");
/// ```
/// let mut vec = vec!["a", "b", "c"];
/// vec.grow_set(1, &("fill"), "d");
/// vec.grow_set(4, &("fill"), "e");
/// assert_eq!(vec, vec!("a", "d", "c", "fill", "e"));
/// assert_eq!(vec, vec!["a", "d", "c", "fill", "e"]);
/// ```
pub fn grow_set(&mut self, index: uint, initval: &T, value: T) {
let l = self.len();
@ -351,11 +405,11 @@ impl<T: Clone> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3, 4);
/// ```
/// let vec = vec![1i, 2, 3, 4];
/// let (even, odd) = vec.partitioned(|&n| n % 2 == 0);
/// assert_eq!(even, vec!(2i, 4));
/// assert_eq!(odd, vec!(1i, 3));
/// assert_eq!(even, vec![2i, 4]);
/// assert_eq!(odd, vec![1i, 3]);
/// ```
pub fn partitioned(&self, f: |&T| -> bool) -> (Vec<T>, Vec<T>) {
let mut lefts = Vec::new();
@ -501,8 +555,7 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let vec: Vec<int> = Vec::with_capacity(10);
/// assert_eq!(vec.capacity(), 10);
/// ```
@ -520,9 +573,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// let mut vec: Vec<int> = vec!(1i);
/// ```
/// let mut vec: Vec<int> = vec![1i];
/// vec.reserve_additional(10);
/// assert!(vec.capacity() >= 11);
/// ```
@ -546,8 +598,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// vec.reserve(10);
/// assert!(vec.capacity() >= 10);
/// ```
@ -564,8 +616,7 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// # use std::vec::Vec;
/// ```
/// let mut vec: Vec<int> = Vec::with_capacity(10);
/// vec.reserve_exact(11);
/// assert_eq!(vec.capacity(), 11);
@ -588,8 +639,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// vec.shrink_to_fit();
/// ```
pub fn shrink_to_fit(&mut self) {
@ -620,10 +671,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// assert_eq!(vec.pop(), Some(3));
/// assert_eq!(vec, vec!(1, 2));
/// assert_eq!(vec, vec![1, 2]);
/// ```
#[inline]
pub fn pop(&mut self) -> Option<T> {
@ -645,10 +696,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2);
/// ```
/// let mut vec = vec![1i, 2];
/// vec.push(3);
/// assert_eq!(vec, vec!(1, 2, 3));
/// assert_eq!(vec, vec![1, 2, 3]);
/// ```
#[inline]
pub fn push(&mut self, value: T) {
@ -681,10 +732,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2);
/// ```
/// let vec = vec![1i, 2];
/// let vec = vec.append_one(3);
/// assert_eq!(vec, vec!(1, 2, 3));
/// assert_eq!(vec, vec![1, 2, 3]);
/// ```
#[inline]
pub fn append_one(mut self, x: T) -> Vec<T> {
@ -699,10 +750,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4);
/// ```
/// let mut vec = vec![1i, 2, 3, 4];
/// vec.truncate(2);
/// assert_eq!(vec, vec!(1, 2));
/// assert_eq!(vec, vec![1, 2]);
/// ```
pub fn truncate(&mut self, len: uint) {
unsafe {
@ -720,10 +771,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// ```
/// fn foo(slice: &mut [int]) {}
///
/// let mut vec = vec!(1i, 2);
/// let mut vec = vec![1i, 2];
/// foo(vec.as_mut_slice());
/// ```
#[inline]
@ -742,8 +793,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let v = vec!("a".to_string(), "b".to_string());
/// ```
/// let v = vec!["a".to_string(), "b".to_string()];
/// for s in v.move_iter() {
/// // s has type String, not &String
/// println!("{}", s);
@ -766,6 +817,15 @@ impl<T> Vec<T> {
/// This will explicitly set the size of the vector, without actually
/// modifying its buffers, so it is up to the caller to ensure that the
/// vector is actually the specified size.
///
/// # Example
///
/// ```
/// let mut v = vec![1u, 2, 3, 4];
/// unsafe {
/// v.set_len(1);
/// }
/// ```
#[inline]
pub unsafe fn set_len(&mut self, len: uint) {
self.len = len;
@ -779,10 +839,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// ```
/// #![allow(deprecated)]
///
/// let vec = vec!(1i, 2, 3);
/// let vec = vec![1i, 2, 3];
/// assert!(vec.get(1) == &2);
/// ```
#[deprecated="prefer using indexing, e.g., vec[0]"]
@ -799,10 +859,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// *vec.get_mut(1) = 4;
/// assert_eq!(vec, vec!(1i, 4, 3));
/// assert_eq!(vec, vec![1i, 4, 3]);
/// ```
#[inline]
pub fn get_mut<'a>(&'a mut self, index: uint) -> &'a mut T {
@ -814,8 +874,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3];
/// for num in vec.iter() {
/// println!("{}", *num);
/// }
@ -831,8 +891,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// for num in vec.mut_iter() {
/// *num = 0;
/// }
@ -849,14 +909,14 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut v = vec!(5i, 4, 1, 3, 2);
/// ```
/// let mut v = vec![5i, 4, 1, 3, 2];
/// v.sort_by(|a, b| a.cmp(b));
/// assert_eq!(v, vec!(1i, 2, 3, 4, 5));
/// assert_eq!(v, vec![1i, 2, 3, 4, 5]);
///
/// // reverse sorting
/// v.sort_by(|a, b| b.cmp(a));
/// assert_eq!(v, vec!(5i, 4, 3, 2, 1));
/// assert_eq!(v, vec![5i, 4, 3, 2, 1]);
/// ```
#[inline]
pub fn sort_by(&mut self, compare: |&T, &T| -> Ordering) {
@ -872,8 +932,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3, 4);
/// ```
/// let vec = vec![1i, 2, 3, 4];
/// assert!(vec.slice(0, 2) == [1, 2]);
/// ```
#[inline]
@ -889,8 +949,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3];
/// assert!(vec.tail() == [2, 3]);
/// ```
#[inline]
@ -906,8 +966,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3, 4);
/// ```
/// let vec = vec![1i, 2, 3, 4];
/// assert!(vec.tailn(2) == [3, 4]);
/// ```
#[inline]
@ -920,8 +980,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3];
/// assert!(vec.last() == Some(&3));
/// ```
#[inline]
@ -934,10 +994,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// *vec.mut_last().unwrap() = 4;
/// assert_eq!(vec, vec!(1i, 2, 4));
/// assert_eq!(vec, vec![1i, 2, 4]);
/// ```
#[inline]
pub fn mut_last<'a>(&'a mut self) -> Option<&'a mut T> {
@ -950,15 +1010,15 @@ impl<T> Vec<T> {
/// Returns `None` if `index` is out of bounds.
///
/// # Example
/// ```rust
/// let mut v = vec!("foo".to_string(), "bar".to_string(),
/// "baz".to_string(), "qux".to_string());
/// ```
/// let mut v = vec!["foo".to_string(), "bar".to_string(),
/// "baz".to_string(), "qux".to_string()];
///
/// assert_eq!(v.swap_remove(1), Some("bar".to_string()));
/// assert_eq!(v, vec!("foo".to_string(), "qux".to_string(), "baz".to_string()));
/// assert_eq!(v, vec!["foo".to_string(), "qux".to_string(), "baz".to_string()]);
///
/// assert_eq!(v.swap_remove(0), Some("foo".to_string()));
/// assert_eq!(v, vec!("baz".to_string(), "qux".to_string()));
/// assert_eq!(v, vec!["baz".to_string(), "qux".to_string()]);
///
/// assert_eq!(v.swap_remove(2), None);
/// ```
@ -982,10 +1042,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// vec.unshift(4);
/// assert_eq!(vec, vec!(4, 1, 2, 3));
/// assert_eq!(vec, vec![4, 1, 2, 3]);
/// ```
#[inline]
pub fn unshift(&mut self, element: T) {
@ -1002,10 +1062,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// assert!(vec.shift() == Some(1));
/// assert_eq!(vec, vec!(2, 3));
/// assert_eq!(vec, vec![2, 3]);
/// ```
#[inline]
pub fn shift(&mut self) -> Option<T> {
@ -1022,12 +1082,12 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3);
/// ```
/// let mut vec = vec![1i, 2, 3];
/// vec.insert(1, 4);
/// assert_eq!(vec, vec!(1, 4, 2, 3));
/// assert_eq!(vec, vec![1, 4, 2, 3]);
/// vec.insert(4, 5);
/// assert_eq!(vec, vec!(1, 4, 2, 3, 5));
/// assert_eq!(vec, vec![1, 4, 2, 3, 5]);
/// ```
pub fn insert(&mut self, index: uint, element: T) {
let len = self.len();
@ -1056,14 +1116,14 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut v = vec!(1i, 2, 3);
/// ```
/// let mut v = vec![1i, 2, 3];
/// assert_eq!(v.remove(1), Some(2));
/// assert_eq!(v, vec!(1, 3));
/// assert_eq!(v, vec![1, 3]);
///
/// assert_eq!(v.remove(4), None);
/// // v is unchanged:
/// assert_eq!(v, vec!(1, 3));
/// assert_eq!(v, vec![1, 3]);
/// ```
pub fn remove(&mut self, index: uint) -> Option<T> {
let len = self.len();
@ -1095,10 +1155,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(box 1i);
/// vec.push_all_move(vec!(box 2, box 3, box 4));
/// assert_eq!(vec, vec!(box 1, box 2, box 3, box 4));
/// ```
/// let mut vec = vec![box 1i];
/// vec.push_all_move(vec![box 2, box 3, box 4]);
/// assert_eq!(vec, vec![box 1, box 2, box 3, box 4]);
/// ```
#[inline]
pub fn push_all_move(&mut self, other: Vec<T>) {
@ -1114,8 +1174,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4);
/// ```
/// let mut vec = vec![1i, 2, 3, 4];
/// assert!(vec.mut_slice(0, 2) == [1, 2]);
/// ```
#[inline]
@ -1132,8 +1192,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4);
/// ```
/// let mut vec = vec![1i, 2, 3, 4];
/// assert!(vec.mut_slice_from(2) == [3, 4]);
/// ```
#[inline]
@ -1149,8 +1209,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4);
/// ```
/// let mut vec = vec![1i, 2, 3, 4];
/// assert!(vec.mut_slice_to(2) == [1, 2]);
/// ```
#[inline]
@ -1170,8 +1230,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4, 5, 6);
/// ```
/// let mut vec = vec![1i, 2, 3, 4, 5, 6];
///
/// // scoped to restrict the lifetime of the borrows
/// {
@ -1201,10 +1261,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut v = vec!(1i, 2, 3);
/// ```
/// let mut v = vec![1i, 2, 3];
/// v.reverse();
/// assert_eq!(v, vec!(3i, 2, 1));
/// assert_eq!(v, vec![3i, 2, 1]);
/// ```
#[inline]
pub fn reverse(&mut self) {
@ -1219,8 +1279,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3];
/// assert!(vec.slice_from(1) == [2, 3]);
/// ```
#[inline]
@ -1236,8 +1296,8 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3, 4];
/// assert!(vec.slice_to(2) == [1, 2]);
/// ```
#[inline]
@ -1250,6 +1310,13 @@ impl<T> Vec<T> {
/// # Failure
///
/// Fails if the vector is empty
///
/// # Example
///
/// ```
/// let vec = vec![1i, 2, 3];
/// assert!(vec.init() == [1, 2]);
/// ```
#[inline]
pub fn init<'a>(&'a self) -> &'a [T] {
self.slice(0, self.len() - 1)
@ -1263,6 +1330,19 @@ impl<T> Vec<T> {
///
/// Modifying the vector may cause its buffer to be reallocated, which
/// would also make any pointers to it invalid.
///
/// # Example
///
/// ```
/// let v = vec![1i, 2, 3];
/// let p = v.as_ptr();
/// unsafe {
/// // Examine each element manually
/// assert_eq!(*p, 1i);
/// assert_eq!(*p.offset(1), 2i);
/// assert_eq!(*p.offset(2), 3i);
/// }
/// ```
#[inline]
pub fn as_ptr(&self) -> *const T {
self.ptr as *const T
@ -1275,6 +1355,20 @@ impl<T> Vec<T> {
///
/// Modifying the vector may cause its buffer to be reallocated, which
/// would also make any pointers to it invalid.
///
/// # Example
///
/// ```
/// use std::ptr;
///
/// let mut v = vec![1i, 2, 3];
/// let p = v.as_mut_ptr();
/// unsafe {
/// ptr::write(p, 9i);
/// ptr::write(p.offset(2), 5i);
/// }
/// assert_eq!(v, vec![9i, 2, 5]);
/// ```
#[inline]
pub fn as_mut_ptr(&mut self) -> *mut T {
self.ptr
@ -1287,10 +1381,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 3, 4);
/// ```
/// let mut vec = vec![1i, 2, 3, 4];
/// vec.retain(|x| x%2 == 0);
/// assert_eq!(vec, vec!(2, 4));
/// assert_eq!(vec, vec![2, 4]);
/// ```
pub fn retain(&mut self, f: |&T| -> bool) {
let len = self.len();
@ -1318,10 +1412,10 @@ impl<T> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(0u, 1);
/// ```
/// let mut vec = vec![0u, 1];
/// vec.grow_fn(3, |i| i);
/// assert_eq!(vec, vec!(0, 1, 0, 1, 2));
/// assert_eq!(vec, vec![0, 1, 0, 1, 2]);
/// ```
pub fn grow_fn(&mut self, n: uint, f: |uint| -> T) {
self.reserve_additional(n);
@ -1339,10 +1433,10 @@ impl<T:Ord> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(3i, 1, 2);
/// ```
/// let mut vec = vec![3i, 1, 2];
/// vec.sort();
/// assert_eq!(vec, vec!(1, 2, 3));
/// assert_eq!(vec, vec![1, 2, 3]);
/// ```
pub fn sort(&mut self) {
self.as_mut_slice().sort()
@ -1361,8 +1455,8 @@ impl<T:PartialEq> Vec<T> {
///
/// # Example
///
/// ```rust
/// let vec = vec!(1i, 2, 3);
/// ```
/// let vec = vec![1i, 2, 3];
/// assert!(vec.contains(&1));
/// ```
#[inline]
@ -1376,10 +1470,10 @@ impl<T:PartialEq> Vec<T> {
///
/// # Example
///
/// ```rust
/// let mut vec = vec!(1i, 2, 2, 3, 2);
/// ```
/// let mut vec = vec![1i, 2, 2, 3, 2];
/// vec.dedup();
/// assert_eq!(vec, vec!(1i, 2, 3, 2));
/// assert_eq!(vec, vec![1i, 2, 3, 2]);
/// ```
pub fn dedup(&mut self) {
unsafe {
@ -1471,10 +1565,10 @@ impl<T> Vector<T> for Vec<T> {
///
/// # Example
///
/// ```rust
/// ```
/// fn foo(slice: &[int]) {}
///
/// let vec = vec!(1i, 2);
/// let vec = vec![1i, 2];
/// foo(vec.as_slice());
/// ```
#[inline]