사용 준비

헤더파일 추가

#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

+ Recent posts