template<class BidirectionalIterator>
bool next_permutation(BidirectionalIterator first,
BidirectionalIterator last);
template<class BidirectionalIterator, class Compare>
bool next_permutation(BidirectionalIterator first,
BidirectionalIterator last, Compare comp);
Requires: BidirectionalIterator должны удовлетворять требованиям ValueSwappable.
Effects: Принимает последовательность, определенную диапазоном, [first, last) и преобразует ее в следующую перестановку. Следующая перестановка находится в предположении, что множество всех перестановок лексикографически отсортировано относительно operator< или comp.
Returns: true если такая перестановка существует. В противном случае он преобразует последовательность в наименьшую перестановку, то есть в сортированную по возрастанию, и возвращает false.
template<class BidirectionalIterator>
bool prev_permutation(BidirectionalIterator first,
BidirectionalIterator last);
template<class BidirectionalIterator, class Compare>
bool prev_permutation(BidirectionalIterator first,
BidirectionalIterator last, Compare comp);
Requires: BidirectionalIterator должны удовлетворять требованиям ValueSwappable.
Effects: Принимает последовательность, определенную диапазоном, [first, last) и преобразует ее в предыдущую перестановку. Предыдущая перестановка находится в предположении, что набор всех перестановок лексикографически отсортирован относительно operator< или comp.
Returns: true если такая перестановка существует. В противном случае он преобразует последовательность в наибольшую перестановку, то есть отсортированную по убыванию, и возвращает false.