반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- sstream
- data_structure
- 자료구조
- STL
- template
- 문법
- 13305
- class_template
- 예제
- Articulation_Point
- 알고리즘
- function_template
- Pair
- 5397
- Heap
- Critical_Path_Analysis
- connected_component
- sort
- Algorithm
- Biconnected_Component
- 총정리
- red-black tree
- deletion
- singly Linked List
- c++
- qsort
- 구현
- 백준
- '0'
- list
Archives
- Today
- Total
- Today
- Total
- 방명록
어제의 나보다 성장한 오늘의 나
[C++] Sort 와 Compare 함수 (Greater , less) 본문
반응형
sort를 오름차순과 내림차순 중에 결정할 때 compare함수가 사용된다.
특히 <algorithm>에 저장되어 있는 sort 나 heap_sort를 사용할 때 많이 사용된다.
사용법은 동일 하니 STL Sort 함수를 기준으로 알아보자.
① compare 함수 생략 (오름차순)
vector<int> v = {4,5,2,1,3};
sort(v.begin() , v.end());
② compare 함수 (내림차순)
bool comp_desc(int a , int b){
return a>b;
}
vector<int> v1 = {4,5,2,1,3};
sort(v1.begin() , v1.end() , comp_desc);
③ greater 함수 (내림차순)
vector<int> v2 = {4,5,2,1,3};
sort(v2.begin() , v2.end(),greater<>());
④ less 함수 (오름차순)
vector<int> v3 = {4,5,2,1,3};
sort(v3.begin() , v3.end(),less<>());
오름 차순 정렬 일 때 : 생략 or less
내림 차순 정렬 일 때 : greater or comp(만들어야 함.)
Coding
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional> // greater , less 헤더함수
using namespace std;
// compare 함수 (내림차순)
bool comp_desc(int a , int b){
return a>b;
}
int main(int args , char** argv){
// compare 함수 생략
vector<int> v = {4,5,2,1,3};
sort(v.begin() , v.end());
cout << "No compare function : " ;
for(auto x : v) cout << x << ' ';
cout << endl;
// 내림차순 compare 함수
vector<int> v1 = {4,5,2,1,3};
sort(v1.begin() , v1.end() , comp_desc);
cout << "descending compare function : " ;
for(auto x : v1) cout << x << ' ';
cout << endl;
// greater 함수
vector<int> v2 = {4,5,2,1,3};
sort(v2.begin() , v2.end(),greater<>());
cout << "greater function : " ;
for(auto x : v2) cout << x << ' ';
cout << endl;
// less 함수
vector<int> v3 = {4,5,2,1,3};
sort(v3.begin() , v3.end(),less<>());
cout << "less function : " ;
for(auto x : v3) cout << x << ' ';
}
반응형
'c++ > 문법' 카테고리의 다른 글
[C++] Unique 함수 정리 및 예제 (0) | 2022.02.13 |
---|---|
[c / c++] new / malloc / calloc /realloc 총 정리 & 예제 (0) | 2022.02.12 |
[c++] [자료형] int / double / char / float 크기 (0) | 2022.02.12 |
[C++] Pair 와 Tuple (0) | 2022.02.10 |
[c++] Template(템플릿) 총 정리 & 예제 (0) | 2022.02.10 |
Comments