@@ -228,43 +228,7 @@ impl<T: Ord> BTreeSet<T> {
228228 pub fn new ( ) -> BTreeSet < T > {
229229 BTreeSet { map : BTreeMap :: new ( ) }
230230 }
231- }
232-
233- impl < T > BTreeSet < T > {
234- /// Gets an iterator that visits the values in the `BTreeSet` in ascending order.
235- ///
236- /// # Examples
237- ///
238- /// ```
239- /// use std::collections::BTreeSet;
240- ///
241- /// let set: BTreeSet<usize> = [1, 2, 3].iter().cloned().collect();
242- /// let mut set_iter = set.iter();
243- /// assert_eq!(set_iter.next(), Some(&1));
244- /// assert_eq!(set_iter.next(), Some(&2));
245- /// assert_eq!(set_iter.next(), Some(&3));
246- /// assert_eq!(set_iter.next(), None);
247- /// ```
248- ///
249- /// Values returned by the iterator are returned in ascending order:
250- ///
251- /// ```
252- /// use std::collections::BTreeSet;
253- ///
254- /// let set: BTreeSet<usize> = [3, 1, 2].iter().cloned().collect();
255- /// let mut set_iter = set.iter();
256- /// assert_eq!(set_iter.next(), Some(&1));
257- /// assert_eq!(set_iter.next(), Some(&2));
258- /// assert_eq!(set_iter.next(), Some(&3));
259- /// assert_eq!(set_iter.next(), None);
260- /// ```
261- #[ stable( feature = "rust1" , since = "1.0.0" ) ]
262- pub fn iter ( & self ) -> Iter < T > {
263- Iter { iter : self . map . keys ( ) }
264- }
265- }
266231
267- impl < T : Ord > BTreeSet < T > {
268232 /// Constructs a double-ended iterator over a sub-range of elements in the set.
269233 /// The simplest way is to use the range syntax `min..max`, thus `range(min..max)` will
270234 /// yield elements from min (inclusive) to max (exclusive).
@@ -293,9 +257,7 @@ impl<T: Ord> BTreeSet<T> {
293257 {
294258 Range { iter : self . map . range ( range) }
295259 }
296- }
297260
298- impl < T : Ord > BTreeSet < T > {
299261 /// Visits the values representing the difference,
300262 /// i.e. the values that are in `self` but not in `other`,
301263 /// in ascending order.
@@ -408,40 +370,6 @@ impl<T: Ord> BTreeSet<T> {
408370 }
409371 }
410372
411- /// Returns the number of elements in the set.
412- ///
413- /// # Examples
414- ///
415- /// ```
416- /// use std::collections::BTreeSet;
417- ///
418- /// let mut v = BTreeSet::new();
419- /// assert_eq!(v.len(), 0);
420- /// v.insert(1);
421- /// assert_eq!(v.len(), 1);
422- /// ```
423- #[ stable( feature = "rust1" , since = "1.0.0" ) ]
424- pub fn len ( & self ) -> usize {
425- self . map . len ( )
426- }
427-
428- /// Returns `true` if the set contains no elements.
429- ///
430- /// # Examples
431- ///
432- /// ```
433- /// use std::collections::BTreeSet;
434- ///
435- /// let mut v = BTreeSet::new();
436- /// assert!(v.is_empty());
437- /// v.insert(1);
438- /// assert!(!v.is_empty());
439- /// ```
440- #[ stable( feature = "rust1" , since = "1.0.0" ) ]
441- pub fn is_empty ( & self ) -> bool {
442- self . len ( ) == 0
443- }
444-
445373 /// Clears the set, removing all values.
446374 ///
447375 /// # Examples
@@ -724,6 +652,74 @@ impl<T: Ord> BTreeSet<T> {
724652 }
725653}
726654
655+ impl < T > BTreeSet < T > {
656+ /// Gets an iterator that visits the values in the `BTreeSet` in ascending order.
657+ ///
658+ /// # Examples
659+ ///
660+ /// ```
661+ /// use std::collections::BTreeSet;
662+ ///
663+ /// let set: BTreeSet<usize> = [1, 2, 3].iter().cloned().collect();
664+ /// let mut set_iter = set.iter();
665+ /// assert_eq!(set_iter.next(), Some(&1));
666+ /// assert_eq!(set_iter.next(), Some(&2));
667+ /// assert_eq!(set_iter.next(), Some(&3));
668+ /// assert_eq!(set_iter.next(), None);
669+ /// ```
670+ ///
671+ /// Values returned by the iterator are returned in ascending order:
672+ ///
673+ /// ```
674+ /// use std::collections::BTreeSet;
675+ ///
676+ /// let set: BTreeSet<usize> = [3, 1, 2].iter().cloned().collect();
677+ /// let mut set_iter = set.iter();
678+ /// assert_eq!(set_iter.next(), Some(&1));
679+ /// assert_eq!(set_iter.next(), Some(&2));
680+ /// assert_eq!(set_iter.next(), Some(&3));
681+ /// assert_eq!(set_iter.next(), None);
682+ /// ```
683+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
684+ pub fn iter ( & self ) -> Iter < T > {
685+ Iter { iter : self . map . keys ( ) }
686+ }
687+
688+ /// Returns the number of elements in the set.
689+ ///
690+ /// # Examples
691+ ///
692+ /// ```
693+ /// use std::collections::BTreeSet;
694+ ///
695+ /// let mut v = BTreeSet::new();
696+ /// assert_eq!(v.len(), 0);
697+ /// v.insert(1);
698+ /// assert_eq!(v.len(), 1);
699+ /// ```
700+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
701+ pub fn len ( & self ) -> usize {
702+ self . map . len ( )
703+ }
704+
705+ /// Returns `true` if the set contains no elements.
706+ ///
707+ /// # Examples
708+ ///
709+ /// ```
710+ /// use std::collections::BTreeSet;
711+ ///
712+ /// let mut v = BTreeSet::new();
713+ /// assert!(v.is_empty());
714+ /// v.insert(1);
715+ /// assert!(!v.is_empty());
716+ /// ```
717+ #[ stable( feature = "rust1" , since = "1.0.0" ) ]
718+ pub fn is_empty ( & self ) -> bool {
719+ self . len ( ) == 0
720+ }
721+ }
722+
727723#[ stable( feature = "rust1" , since = "1.0.0" ) ]
728724impl < T : Ord > FromIterator < T > for BTreeSet < T > {
729725 fn from_iter < I : IntoIterator < Item = T > > ( iter : I ) -> BTreeSet < T > {
0 commit comments