본문 바로가기

lang/C,C++14

[STL] priority_queue 목표1: STL 중 하나인 priority_queue 를 이용하여 max heap, min heap 구현 목표2: priority_queue를 사용자 정의대로 정렬하는 방법알기, 연산자 오버로딩 기초 priority_queue란? max heap 이라는 자료구조를 배웠다면, 우선순위 큐에 대해 들어봤을 것입니다. heap은 정렬된 트리이며, max heap은 root에 트리 안에 있는 노드 중 가장 큰 값이 있습니다. 선언 #include using namespace std; priority_queue pq; 우선순위큐는 queue 라이브러리에 있고, std 네임스페이스 안에 정의되어 있습니다. 기능 #include #include using namespace std; priority_queue pq; .. 2019. 7. 21.
연산자 오버로딩 vector v; 를 선언해보자. 이 상황에서 cout으로 pair쌍을 출력해보고 싶다. c++은 연산자를 사용자가 필요한 방향으로 쓸 수 있게 돕는다. 2019. 7. 14.
vector - 효율성과 편의성이 높은 array 벡터의 구현 vector는 array인데, size, clear, push_back 등을 지원해주는 효율적이며 편의성이 높은 container이다. 1.vector는 array의 기본성질을 유지한다. (maintain the primitive array) a pointer variable to the block of allocated memory, capacity, 현재 저장된 item 수 2. deep-copy 제공, operator= 제공 destructor 제공 3. resize 제공, capacity를 바꿔주는 routine을 가진다. (reserve routine~) 4. operator[] 5. size, empty, clear back, pop_back, push_back 6. nested .. 2019. 6. 24.
Class Class는 언제 사용하는가? 구조체와 관련 함수를 같이 사용하고 싶을 때 1. Constructor, 생성자 멤버변수 초기화 2. Destructor, 소멸자 프로그램 종료시 멤버변수 자동 소멸, 메모리 관리 class BSTNode { private: int key; BSTNode *l, *r; public: BSTNode(int key=0) { this->key = key; this->l = NULL; this->r = NULL; } ~BSTNode() { delete l; delete r; } int get_key() { return key; } void set_key(int key_changed) { this->key = key_changed; } BSTNode* get_left() { retu.. 2019. 6. 8.
728x90