@@ -74,53 +74,91 @@ 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
94+ /// [`IntoIterator`]: ../../iter/trait.IntoIterator.html
95+ /// [`into_iter()`]: ../../iter/trait.IntoIterator.html#tymethod.into_iter
8496#[ stable( feature = "rust1" , since = "1.0.0" ) ]
8597pub struct IntoIter < T > {
8698 iter : :: btree_map:: IntoIter < T , ( ) > ,
8799}
88100
89- /// An iterator over a sub-range of BTreeSet's items.
101+ /// An iterator over a sub-range of `BTreeSet`'s items.
102+ ///
103+ /// This structure is created by the [`range()`] method on [`BTreeSet`].
104+ ///
105+ /// [`BTreeSet`]: struct.BTreeSet.html
106+ /// [`range()`]: struct.BTreeSet.html#method.range
90107pub struct Range < ' a , T : ' a > {
91108 iter : :: btree_map:: Range < ' a , T , ( ) > ,
92109}
93110
94111/// A lazy iterator producing elements in the set difference (in-order).
112+ ///
113+ /// This structure is created by the [`difference()`] method on [`BTreeSet`].
114+ ///
115+ /// [`BTreeSet`]: struct.BTreeSet.html
116+ /// [`difference()`]: struct.BTreeSet.html#method.difference
95117#[ stable( feature = "rust1" , since = "1.0.0" ) ]
96118pub struct Difference < ' a , T : ' a > {
97119 a : Peekable < Iter < ' a , T > > ,
98120 b : Peekable < Iter < ' a , T > > ,
99121}
100122
101123/// A lazy iterator producing elements in the set symmetric difference (in-order).
124+ ///
125+ /// This structure is created by the [`symmetric_difference()`] method on
126+ /// [`BTreeSet`].
127+ ///
128+ /// [`BTreeSet`]: struct.BTreeSet.html
129+ /// [`symmetric_difference()`]: struct.BTreeSet.html#method.symmetric_difference
102130#[ stable( feature = "rust1" , since = "1.0.0" ) ]
103131pub struct SymmetricDifference < ' a , T : ' a > {
104132 a : Peekable < Iter < ' a , T > > ,
105133 b : Peekable < Iter < ' a , T > > ,
106134}
107135
108136/// A lazy iterator producing elements in the set intersection (in-order).
137+ ///
138+ /// This structure is created by the [`intersection()`] method on [`BTreeSet`].
139+ ///
140+ /// [`BTreeSet`]: struct.BTreeSet.html
141+ /// [`intersection()`]: struct.BTreeSet.html#method.intersection
109142#[ stable( feature = "rust1" , since = "1.0.0" ) ]
110143pub struct Intersection < ' a , T : ' a > {
111144 a : Peekable < Iter < ' a , T > > ,
112145 b : Peekable < Iter < ' a , T > > ,
113146}
114147
115148/// A lazy iterator producing elements in the set union (in-order).
149+ ///
150+ /// This structure is created by the [`union()`] method on [`BTreeSet`].
151+ ///
152+ /// [`BTreeSet`]: struct.BTreeSet.html
153+ /// [`union()`]: struct.BTreeSet.html#method.union
116154#[ stable( feature = "rust1" , since = "1.0.0" ) ]
117155pub struct Union < ' a , T : ' a > {
118156 a : Peekable < Iter < ' a , T > > ,
119157 b : Peekable < Iter < ' a , T > > ,
120158}
121159
122160impl < T : Ord > BTreeSet < T > {
123- /// Makes a new BTreeSet with a reasonable choice of B.
161+ /// Makes a new ` BTreeSet` with a reasonable choice of B.
124162 ///
125163 /// # Examples
126164 ///
@@ -137,21 +175,32 @@ impl<T: Ord> BTreeSet<T> {
137175}
138176
139177impl < T > BTreeSet < T > {
140- /// Gets an iterator over the BTreeSet's contents .
178+ /// Gets an iterator that visits the values in the ` BTreeSet` in ascending order .
141179 ///
142180 /// # Examples
143181 ///
144182 /// ```
145183 /// use std::collections::BTreeSet;
146184 ///
147- /// let set: BTreeSet<usize> = [1, 2, 3, 4].iter().cloned().collect();
185+ /// let set: BTreeSet<usize> = [1, 2, 3].iter().cloned().collect();
186+ /// let mut set_iter = set.iter();
187+ /// assert_eq!(set_iter.next(), Some(&1));
188+ /// assert_eq!(set_iter.next(), Some(&2));
189+ /// assert_eq!(set_iter.next(), Some(&3));
190+ /// assert_eq!(set_iter.next(), None);
191+ /// ```
148192 ///
149- /// for x in set.iter() {
150- /// println!("{}", x);
151- /// }
193+ /// Values returned by the iterator are returned in ascending order:
152194 ///
153- /// let v: Vec<_> = set.iter().cloned().collect();
154- /// assert_eq!(v, [1, 2, 3, 4]);
195+ /// ```
196+ /// use std::collections::BTreeSet;
197+ ///
198+ /// let set: BTreeSet<usize> = [3, 1, 2].iter().cloned().collect();
199+ /// let mut set_iter = set.iter();
200+ /// assert_eq!(set_iter.next(), Some(&1));
201+ /// assert_eq!(set_iter.next(), Some(&2));
202+ /// assert_eq!(set_iter.next(), Some(&3));
203+ /// assert_eq!(set_iter.next(), None);
155204 /// ```
156205 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
157206 pub fn iter ( & self ) -> Iter < T > {
0 commit comments