7
7
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
- //! A growable, owned vector
10
+ //! An owned, growable vector.
11
11
12
12
use cast:: { forget, transmute} ;
13
13
use clone:: Clone ;
@@ -30,18 +30,29 @@ use raw::Slice;
30
30
use slice:: { ImmutableEqVector , ImmutableVector , Items , MutItems , MutableVector } ;
31
31
use slice:: { MutableTotalOrdVector } ;
32
32
33
- /// An owned, growable vector
33
+ /// An owned, growable vector.
34
34
///
35
- /// `Vec<T>` is the replacement for the deprecated `~[T]` type. The API is
36
- /// largely the same. The `vec!` macro is provided to make initialization
37
- /// easier.
35
+ /// # Examples
38
36
///
39
- /// # Example
37
+ /// ```rust
38
+ /// # use std::vec::Vec;
39
+ /// let mut vec = Vec::new();
40
+ /// vec.push(1);
41
+ /// vec.push(2);
42
+ ///
43
+ /// assert_eq!(vec.len(), 2);
44
+ /// assert_eq!(vec.get(0), &1);
45
+ ///
46
+ /// assert_eq!(vec.pop(), Some(2));
47
+ /// assert_eq!(vec.len(), 1);
48
+ /// ```
49
+ ///
50
+ /// The `vec!` macro is provided to make initialization more convenient:
40
51
///
41
52
/// ```rust
42
53
/// let mut vec = vec!(1, 2, 3);
43
54
/// vec.push(4);
44
- /// println!("{}" , vec); // prints [ 1, 2, 3, 4]
55
+ /// assert_eq!(vec , vec!( 1, 2, 3, 4));
45
56
/// ```
46
57
#[ unsafe_no_drop_flag]
47
58
pub struct Vec < T > {
@@ -87,7 +98,6 @@ impl<T> Vec<T> {
87
98
}
88
99
}
89
100
90
-
91
101
/// Creates and initializes a `Vec`.
92
102
///
93
103
/// Creates a `Vec` of size `length` and initializes the elements to the
@@ -767,13 +777,13 @@ impl<T> Vec<T> {
767
777
///
768
778
/// # Example
769
779
/// ```rust
770
- /// let mut v = ~[~ "foo", ~"bar", ~"baz", ~"qux"] ;
780
+ /// let mut v = vec!(~ "foo", ~"bar", ~"baz", ~"qux") ;
771
781
///
772
782
/// assert_eq!(v.swap_remove(1), Some(~"bar"));
773
- /// assert_eq!(v, ~[~ "foo", ~"qux", ~"baz"] );
783
+ /// assert_eq!(v, vec!(~ "foo", ~"qux", ~"baz") );
774
784
///
775
785
/// assert_eq!(v.swap_remove(0), Some(~"foo"));
776
- /// assert_eq!(v, ~[~ "baz", ~"qux"] );
786
+ /// assert_eq!(v, vec!(~ "baz", ~"qux") );
777
787
///
778
788
/// assert_eq!(v.swap_remove(2), None);
779
789
/// ```
@@ -869,13 +879,13 @@ impl<T> Vec<T> {
869
879
/// # Example
870
880
///
871
881
/// ```rust
872
- /// let mut v = ~[ 1, 2, 3] ;
882
+ /// let mut v = vec!( 1, 2, 3) ;
873
883
/// assert_eq!(v.remove(1), Some(2));
874
- /// assert_eq!(v, ~[ 1, 3] );
884
+ /// assert_eq!(v, vec!( 1, 3) );
875
885
///
876
886
/// assert_eq!(v.remove(4), None);
877
887
/// // v is unchanged:
878
- /// assert_eq!(v, ~[ 1, 3] );
888
+ /// assert_eq!(v, vec!( 1, 3) );
879
889
/// ```
880
890
pub fn remove ( & mut self , index : uint ) -> Option < T > {
881
891
let len = self . len ( ) ;
0 commit comments