Step-by-Step
[C++] Struct, priority_queue 간단한 사용 본문
Java만 쓰다가 C / C++ 중에 하나를 선택해야 하는 순간이 왔을 때, C++를 선택한 건 정말 잘 한 결정이었다.
함수 기반 C언어와 달리 객체 지향인 C++은 Java를 잘 알고 있으면 금방 이해하고 다룰 수 있는 것 같다.
※ 다만 JAVA는 대부분 Pascal 표기법을 사용하는데, C++은 대부분 스네이크 표기법이다.
ex) JAVA → PriorityQueue // C++ → priority_queue
Struct
struct Person {
int h, w, idx;
Person(int height, int weight, int index) : h(height), w(weight), idx(index) {}
bool operator<(const Person p) const {
if (this->h < p.h && this->w < p.w)
return true;
return false;
}
};
- 생성자는 똑같이 매개변수를 통해 인자값을 받고, 필드명(넣을 값) 순으로 넣어주면 된다.
- operator 는 구조체를 sort할 때 정렬기준을 나타내는 함수이며, 오버로딩 해서 사용하면 된다.
(또는 따로 정렬함수를 생성한 후, sort 할때 매개변수로 정렬함수를 넣어주면 된다.)
PriorityQueue
#include <queue>
priority_queue<Person> pq;
pq.push(Person(50,160,0));
- queue를 사용하기 위해서는 라이브러리를 include를 해주어야 한다.
- 정렬되는 특징 빼고는 빼내거나 넣을 때 사용하는 메소드는 일반 큐와 동일하다.
백준 7568번 문제 조건을 잘 못 보고 저걸 공부해서 썼는데, 결국 필요없어서 다 지우고 냈다 ㅋㅋㅋㅋ
그래도 공부할 수 있는 계기가 되어서 좋았다! ✨
'언어 > C++' 카테고리의 다른 글
[C++] 백준1915 - 가장 큰 정사각형 (0) | 2022.12.15 |
---|---|
[C++] Struct와 Class (0) | 2022.11.29 |
[C++] Queue / Stack / Pair (0) | 2022.10.28 |
[C++] 백준2293 - 동전 1 (0) | 2022.10.26 |
[C++] 기본 입출력 (0) | 2022.10.26 |
Comments