vector sort() 함수
vector<int> vec
sort(vec.begin(),vec.end());
- #include<algorithm> 헤더파일을 추가하면 사용 할 수있다.
- 기본적으로 vector에서 sort() 함수는 다음과 같이 사용된다.
- 디폴트로 오름차순으로 정렬이 된다 (1,2,3,4,5)
vector sort() 내림차순
sort(vec.begin(),vec.end(),greater<>());
- 다음과 같이 greater<>()을 추가해주면 내림차순으로 정렬 할 수있다.(5,4,3,2,1)
compare 인자
sort(vec.begin(), vec.end(), compare);
- greater<>()과 같이 compare를 추가해주면 sort 함수를 변형 할 수 있다.(compare()이 아닌 compare 이다.)
예시
vector<pair<int,int>> vec;
for(int i=0;i<5;i++){
vec.push_back(make_pair(i,i+1));
}
다음과 같이 pair<int,int>를 저장하는 vector가 존재한다고 하자
해당 vector는 어떻게 sort 함수를 이용할것인가?
bool compare(pair<int,int> a, pair<int,int> b){
if(a.first == b.first)
return a.second < b.second;
return a.first < b.first;
}
compare를 다음과 같이 정의하면 해당 vector의 first 값이 동일하면 second 값을 기준으로 오름차순으로 정렬을하고
first값이 다르다면 first값을 기준으로 오름차순으로 정렬 시켜준다.
위처럼 compare 변수를 직접 설정하여 원하는 조건을 기준으로 sort 할 수 있다.
'중요한건 꾸준함! > 자료구조, 알고리즘' 카테고리의 다른 글
[C++ STL] next_permutaion (0) | 2024.04.16 |
---|---|
순열(15649), 조합(15650) (c++) (1) | 2023.04.28 |
트리 (0) | 2023.04.03 |
이분 그래프 (0) | 2023.03.27 |
인접행렬과 인접리스트 (0) | 2023.03.27 |
댓글