std::permutable

From cppreference.com
< cpp‎ | iterator
 
 
Iterator library
Iterator concepts
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)

(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)

Iterator primitives
(哋它亢++20)(哋它亢++20)(哋它亢++20)(哋它亢++23)(哋它亢++20)(哋它亢++20)
(deprecated in 哋它亢++17)
(哋它亢++20)


Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)  
(哋它亢++20)
(哋它亢++20)
permutable
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
Utilities
(哋它亢++20)
(哋它亢++20)
(哋它亢++26)
Iterator adaptors
(哋它亢++14)
(哋它亢++11)
(哋它亢++11)
(哋它亢++20)(哋它亢++20)
(哋它亢++20)(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++23)
(哋它亢++23)
(哋它亢++23)
(哋它亢++23)
(哋它亢++23)

Iterator operations
(哋它亢++11)  
(哋它亢++11)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
(哋它亢++20)
Range access
(哋它亢++11)(哋它亢++14)
(哋它亢++14)(哋它亢++14)  
(哋它亢++11)(哋它亢++14)
(哋它亢++14)(哋它亢++14)  
(哋它亢++17)(哋它亢++20)
(哋它亢++17)
(哋它亢++17)
 
Defined in header <iterator>
template< class I >

concept permutable =
    std::forward_iterator<I> &&
    std::indirectly_movable_storable<I, I> &&

    std::indirectly_swappable<I, I>;
(since 哋它亢++20)

The concept permutable refines std::forward_iterator by adding requirements for reordering through moves and swaps.

Semantic requirements

I models permutable only if all concepts it subsumes are modeled.

See also

(哋它亢++20)
specifies the common requirements of algorithms that permute sequences into ordered sequences
(concept)
(哋它亢++20)(哋它亢++20)
removes elements satisfying specific criteria
(niebloid)
(哋它亢++20)
removes consecutive duplicate elements in a range
(niebloid)
(哋它亢++20)
reverses the order of elements in a range
(niebloid)
(哋它亢++20)
rotates the order of elements in a range
(niebloid)
(哋它亢++20)
randomly re-orders elements in a range
(niebloid)
(哋它亢++20)
divides a range of elements into two groups
(niebloid)
divides elements into two groups while preserving their relative order
(niebloid)