사용 준비
헤더파일 추가
#include <algorithm>
사용
함수에 배열의 주소 또는 벡터의 iterator를 넣어주면 다음 순열과 이전 순열을 구할 수 있다.
next_permutation 함수
현재 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구해주는 함수
다음 순열이 존재해 구할 수 있다면 true 반환 다음 순열이 없다면 false 반환
// 첫번째 인자:순열의 시작, 두번째 인자:순열의 끝
bool next_permutation (BidirectionalIterator first, BidirectionalIterator last);
예시 코드
vector <int> min(k);
do{
for(int i=0; i<4; i++){
cout << v[i] << " ";
}
cout << '\n';
}while(next_permutation(min.begin(),min.end()));
prev_permutation 함수
현재 수열에서 인자로 넘어간 범위에 해당하는 이전 순열을 구해주는 함수
이전 순열이 존재해 구할 수 있다면 true 반환 이전 순열이 없다면 false 반환
//직접 비교함수를 넣어주는 경우
bool next_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp);
예시 코드
vector <int> min(k);
do{
for(int i=0; i<4; i++){
cout << v[i] << " ";
}
cout << '\n';
}while(prev_permutation(min.begin(),min.end()));
참고 사이트
https://twpower.github.io/82-next_permutation-and-prev_permutation
'프로그래밍 언어 > c++' 카테고리의 다른 글
C++ sort 함수 compare 커스터마이징 (0) | 2022.06.03 |
---|---|
[STL] 덱(Deque) (0) | 2021.10.12 |
[STL] 큐(Queue) (0) | 2021.10.11 |
[STL] vector 컨테이너 (0) | 2021.09.19 |
STL (0) | 2021.09.19 |