Step-by-Step

[C++] Struct, priority_queue 간단한 사용 본문

언어/C++

[C++] Struct, priority_queue 간단한 사용

희주(KHJ) 2022. 11. 15. 13:48

Java만 쓰다가 C / C++ 중에 하나를 선택해야 하는 순간이 왔을 때, C++를 선택한 건 정말 잘 한 결정이었다.

 

 

 

함수 기반 C언어와 달리 객체 지향인 C++Java를 잘 알고 있으면 금방 이해하고 다룰 수 있는 것 같다.

 

 

 

※ 다만 JAVA는 대부분 Pascal 표기법을 사용하는데, C++은 대부분 스네이크 표기법이다.

ex) JAVAPriorityQueue // 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