pub struct ElementSwaps {
// some fields omitted
}
Deprecated since 1.2.0: not clear this should be in the stdlib
An iterator that yields the element swaps needed to produce
a sequence of all possible permutations for an indexed sequence of
elements. Each permutation is only a single swap apart.
The Steinhaus-Johnson-Trotter algorithm is used.
Generates even and odd permutations alternately.
The last generated swap is always (0, 1), and it returns the
sequence to its initial order.
Methods
Deprecated since 1.2.0: not clear this should be in the stdlib
Creates an ElementSwaps
iterator for a sequence of length
elements.
Trait Implementations
fn map<B, F>(self, f: F) -> Map<Self, F> where F: FnMut(Self::Item) -> B
fn filter<P>(self, predicate: P) -> Filter<Self, P> where P: FnMut(&Self::Item) -> bool
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> where F: FnMut(&mut St, Self::Item) -> Option<B>
fn fuse(self) -> Fuse<Self>
fn inspect<F>(self, f: F) -> Inspect<Self, F> where F: FnMut(&Self::Item) -> ()
fn by_ref(&mut self) -> &mut Self
fn fold<B, F>(self, init: B, f: F) -> B where F: FnMut(B, Self::Item) -> B
fn all<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool
fn any<F>(&mut self, f: F) -> bool where F: FnMut(Self::Item) -> bool
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where P: FnMut(&Self::Item) -> bool
fn max_by<B, F>(self, f: F) -> Option<Self::Item> where B: Ord, F: FnMut(&Self::Item) -> B
fn min_by<B, F>(self, f: F) -> Option<Self::Item> where F: FnMut(&Self::Item) -> B, B: Ord
fn cloned<'a, T>(self) -> Cloned<Self> where T: 'a + Clone, Self: Iterator<Item=&'a T>
fn cycle(self) -> Cycle<Self> where Self: Clone
fn sum<S = Self::Item>(self) -> S where S: Add<Self::Item, Output=S> + Zero
fn product<P = Self::Item>(self) -> P where P: Mul<Self::Item, Output=P> + One
Derived Implementations