250x250
Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Flutter
- 클라우드기반 IDE
- Backtracking
- 멀티미디어DB
- 프로그래밍 언어 기술 동향
- 소프트웨어 개발도구
- 소프트웨어아키텍처 기술 동향
- ANSI-SPARC
- 개발프레임워크
- compare구조체
- vector unique erase
- 계층형DB
- 프로그래밍 언어
- 메인 메모리 DB
- sync_with_stdio(0)
- 객체 지향형 DB
- 공간DB
- 시간초과
- TOPCIT
- boj 11659
- 온라인처리
- BOJ
- 객체관계형DB
- 정렬
- 네트워크형DB
- c++
- compare
- aws winscp
- 개발프레임워크의 기술 동향
- 백트래킹
Archives
옐그's 코딩라이프
[c++] priority queue 오름차순 정렬하기 본문
priority queue 오름차순 정렬하기 방법
1. greater 함수 쓰기
2. compare 구조체 정의해서 사용하기
1. greater 함수 쓰기
typedef tuple<int, int, int> t_iii;
priority_queue<t_iii, vector<t_iii>, greater<t_iii>> pq;
위와 같이 priority_queue<타입, vector<타입>, greater<타입>> pq; 로 정의해주면 된다!
2. compare 구조체 정의해서 사용하기
typedef tuple<int, int, int> t_iii;
struct Compare{
bool operator() (t_iii x, t_iii y){
if(get<0>(x) != get<0>(y)) return get<0>(x) < get<0>(y);
if(get<1>(x) != get<1>(y)) return get<1>(x) < get<1>(y);
else return get<2>(x) < get<2>(y);
}
};
priority_queue<t_iii, vector<t_iii>, Compare> pq;
지난번에 sort함수의 compare는 bool로 반환하는 함수면 됐었다. 하지만 priority_queue에서는 Compare 구조체를 정의하고 operator에서 어떤식으로 정렬할 것인지 정의해주어야 한다.
728x90
'c++ > 개념정리' 카테고리의 다른 글
[c++] 대소문자 변환하기 ( toupper(), tolower() 함수 / 아스키코드 ) (0) | 2022.08.02 |
---|---|
[c++] erase() 문자열 내 문자 제거 (0) | 2022.07.25 |
[c++] substr() 부분문자열 (0) | 2022.07.25 |
[c++] find() 문자열 찾기 (0) | 2022.07.25 |
[c++] 입력 갯수 모를때 입력받기 (0) | 2022.07.22 |