@@ -74,53 +74,89 @@ pub struct BTreeSet<T> {
7474 map : BTreeMap < T , ( ) > ,
7575}
7676
77- /// An iterator over a BTreeSet's items.
77+ /// An iterator over a `BTreeSet`'s items.
78+ ///
79+ /// This structure is created by the [`iter`] method on [`BTreeSet`].
80+ ///
81+ /// [`BTreeSet`]: struct.BTreeSet.html
82+ /// [`iter`]: struct.BTreeSet.html#method.iter
7883#[ stable( feature = "rust1" , since = "1.0.0" ) ]
7984pub struct Iter < ' a , T : ' a > {
8085 iter : Keys < ' a , T , ( ) > ,
8186}
8287
83- /// An owning iterator over a BTreeSet's items.
88+ /// An owning iterator over a `BTreeSet`'s items.
89+ ///
90+ /// This structure is created by the `into_iter` method on [`BTreeSet`]
91+ /// [`BTreeSet`] (provided by the `IntoIterator` trait).
92+ ///
93+ /// [`BTreeSet`]: struct.BTreeSet.html
8494#[ stable( feature = "rust1" , since = "1.0.0" ) ]
8595pub struct IntoIter < T > {
8696 iter : :: btree_map:: IntoIter < T , ( ) > ,
8797}
8898
89- /// An iterator over a sub-range of BTreeSet's items.
99+ /// An iterator over a sub-range of `BTreeSet`'s items.
100+ ///
101+ /// This structure is created by the [`range`] method on [`BTreeSet`].
102+ ///
103+ /// [`BTreeSet`]: struct.BTreeSet.html
104+ /// [`range`]: struct.BTreeSet.html#method.range
90105pub struct Range < ' a , T : ' a > {
91106 iter : :: btree_map:: Range < ' a , T , ( ) > ,
92107}
93108
94109/// A lazy iterator producing elements in the set difference (in-order).
110+ ///
111+ /// This structure is created by the [`difference`] method on [`BTreeSet`].
112+ ///
113+ /// [`BTreeSet`]: struct.BTreeSet.html
114+ /// [`difference`]: struct.BTreeSet.html#method.difference
95115#[ stable( feature = "rust1" , since = "1.0.0" ) ]
96116pub struct Difference < ' a , T : ' a > {
97117 a : Peekable < Iter < ' a , T > > ,
98118 b : Peekable < Iter < ' a , T > > ,
99119}
100120
101121/// A lazy iterator producing elements in the set symmetric difference (in-order).
122+ ///
123+ /// This structure is created by the [`symmetric_difference`] method on
124+ /// [`BTreeSet`].
125+ ///
126+ /// [`BTreeSet`]: struct.BTreeSet.html
127+ /// [`symmetric_difference`]: struct.BTreeSet.html#method.symmetric_difference
102128#[ stable( feature = "rust1" , since = "1.0.0" ) ]
103129pub struct SymmetricDifference < ' a , T : ' a > {
104130 a : Peekable < Iter < ' a , T > > ,
105131 b : Peekable < Iter < ' a , T > > ,
106132}
107133
108134/// A lazy iterator producing elements in the set intersection (in-order).
135+ ///
136+ /// This structure is created by the [`intersection`] method on [`BTreeSet`].
137+ ///
138+ /// [`BTreeSet`]: struct.BTreeSet.html
139+ /// [`intersection`]: struct.BTreeSet.html#method.intersection
109140#[ stable( feature = "rust1" , since = "1.0.0" ) ]
110141pub struct Intersection < ' a , T : ' a > {
111142 a : Peekable < Iter < ' a , T > > ,
112143 b : Peekable < Iter < ' a , T > > ,
113144}
114145
115146/// A lazy iterator producing elements in the set union (in-order).
147+ ///
148+ /// This structure is created by the [`union`] method on [`BTreeSet`].
149+ ///
150+ /// [`BTreeSet`]: struct.BTreeSet.html
151+ /// [`union`]: struct.BTreeSet.html#method.union
116152#[ stable( feature = "rust1" , since = "1.0.0" ) ]
117153pub struct Union < ' a , T : ' a > {
118154 a : Peekable < Iter < ' a , T > > ,
119155 b : Peekable < Iter < ' a , T > > ,
120156}
121157
122158impl < T : Ord > BTreeSet < T > {
123- /// Makes a new BTreeSet with a reasonable choice of B.
159+ /// Makes a new ` BTreeSet` with a reasonable choice of B.
124160 ///
125161 /// # Examples
126162 ///
@@ -137,21 +173,32 @@ impl<T: Ord> BTreeSet<T> {
137173}
138174
139175impl < T > BTreeSet < T > {
140- /// Gets an iterator over the BTreeSet's contents .
176+ /// Gets an iterator that visits the values in the ` BTreeSet` in ascending order .
141177 ///
142178 /// # Examples
143179 ///
144180 /// ```
145181 /// use std::collections::BTreeSet;
146182 ///
147- /// let set: BTreeSet<usize> = [1, 2, 3, 4].iter().cloned().collect();
183+ /// let set: BTreeSet<usize> = [1, 2, 3].iter().cloned().collect();
184+ /// let mut set_iter = set.iter();
185+ /// assert_eq!(set_iter.next(), Some(&1));
186+ /// assert_eq!(set_iter.next(), Some(&2));
187+ /// assert_eq!(set_iter.next(), Some(&3));
188+ /// assert_eq!(set_iter.next(), None);
189+ /// ```
148190 ///
149- /// for x in set.iter() {
150- /// println!("{}", x);
151- /// }
191+ /// Values returned by the iterator are returned in ascending order:
152192 ///
153- /// let v: Vec<_> = set.iter().cloned().collect();
154- /// assert_eq!(v, [1, 2, 3, 4]);
193+ /// ```
194+ /// use std::collections::BTreeSet;
195+ ///
196+ /// let set: BTreeSet<usize> = [3, 1, 2].iter().cloned().collect();
197+ /// let mut set_iter = set.iter();
198+ /// assert_eq!(set_iter.next(), Some(&1));
199+ /// assert_eq!(set_iter.next(), Some(&2));
200+ /// assert_eq!(set_iter.next(), Some(&3));
201+ /// assert_eq!(set_iter.next(), None);
155202 /// ```
156203 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
157204 pub fn iter ( & self ) -> Iter < T > {
0 commit comments