prev_permutation
prev_permutation (이전 순열)
범위를 사전순으로 이전 순열로 재배열하는 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
prev_permutation은 범위 [first, last)를 사전순으로 이전 순열로 바꿔요.
template< class BidirIt >
bool prev_permutation( BidirIt first, BidirIt last ); // (1)
비교기 버전도 있어요.
template< class BidirIt, class Compare >
bool prev_permutation( BidirIt first, BidirIt last, Compare comp ); // (2)
- 반환 값: 이전 순열로 변환되면
true. 이미 가장 작은(첫) 순열이어서 맨 뒤(마지막) 순열로 되돌렸다면false.
std::vector<int> v{3, 2, 1};
// 321, 312, 231, ... 순으로 사전순 이전 순열을 탐색
bool ok = std::prev_permutation(v.begin(), v.end());
next_permutation의 반대 연산이에요. 역순으로 모든 순열을 나열할 때 쓸 수 있어요.