Range-v3
Range algorithms, views, and actions for the Standard Library
permutation.hpp File Reference

Functions

template<typename I1 , typename S1 , typename I2 , typename C = equal_to, typename P1 = identity, typename P2 = identity>
requires forward_iterator<I1> && sentinel_for<S1, I1> && forward_iterator<I2> && indirectly_comparable<I1, I2, C, P1, P2>
bool ranges::is_permutation (I1 begin1, S1 end1, I2 begin2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{})
 function template is_permutation
 
template<typename I1 , typename S1 , typename I2 , typename S2 , typename C = equal_to, typename P1 = identity, typename P2 = identity>
requires forward_iterator<I1> && sentinel_for<S1, I1> && forward_iterator<I2> && sentinel_for<S2, I2> && indirectly_comparable<I1, I2, C, P1, P2>
constexpr bool ranges::is_permutation (I1 begin1, S1 end1, I2 begin2, S2 end2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{})
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Rng1 , typename I2Ref , typename C = equal_to, typename P1 = identity, typename P2 = identity>
requires forward_range<Rng1> && forward_iterator<uncvref_t<I2Ref>> && indirectly_comparable<iterator_t<Rng1>, uncvref_t<I2Ref>, C, P1, P2>
bool ranges::is_permutation (Rng1 &&rng1, I2Ref &&begin2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{})
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Rng1 , typename Rng2 , typename C = equal_to, typename P1 = identity, typename P2 = identity>
requires forward_range<Rng1> && forward_range<Rng2> && indirectly_comparable<iterator_t<Rng1>, iterator_t<Rng2>, C, P1, P2>
constexpr bool ranges::is_permutation (Rng1 &&rng1, Rng2 &&rng2, C pred=C{}, P1 proj1=P1{}, P2 proj2=P2{})
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename I , typename S , typename C = less, typename P = identity>
requires bidirectional_iterator<I> && sentinel_for<S, I> && sortable<I, C, P>
constexpr bool ranges::next_permutation (I first, S end_, C pred=C{}, P proj=P{})
 function template next_permutation
 
template<typename Rng , typename C = less, typename P = identity>
requires bidirectional_range<Rng> && sortable<iterator_t<Rng>, C, P>
constexpr bool ranges::next_permutation (Rng &&rng, C pred=C{}, P proj=P{})
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename I , typename S , typename C = less, typename P = identity>
requires bidirectional_iterator<I> && sentinel_for<S, I> && sortable<I, C, P>
constexpr bool ranges::prev_permutation (I first, S end_, C pred=C{}, P proj=P{})
 function template prev_permutation
 
template<typename Rng , typename C = less, typename P = identity>
requires bidirectional_range<Rng> && sortable<iterator_t<Rng>, C, P>
constexpr bool ranges::prev_permutation (Rng &&rng, C pred=C{}, P proj=P{})
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.