C++/STL 4

[C++] STL #4 힙, 우선순위 큐 (Heap, Priority_queue)

목차 ※ STL #1 순차 컨테이너 ※ STL #2 연관 컨테이너 ※ STL #3 Stack & Queue 1. Heap 2. Priority_queue 1. Heap - 완전 이진 트리 (Complete Binary Tree) 기반 자료구조 ㄴ 이진 트리 : 자식 노드가 최대 두 개인 노드들로 구성된 트리 ㄴ 완전 이진 트리 : 마지막 레벨을 제외하고 모든 레벨이 완전히 채워진 이진 트리 ※ 마지막 레벨은 왼쪽 부터 순차적으로 채워져야한다. - 최대값 혹은 최소값을 빠르게 구하기 위한 자료구조 - 부모 자식 간의 관계만 중요하고 형제 노드와는 관계성이 없다. - Min Heap : 부모 노드가 자식 노드보다 항상 작다 (= 루트 노드가 최소값이다) - Max Heap : 부모 노드가 자식 노드보다 항상..

C++/STL 2023.06.20

[C++] STL #3 Stack & Queue

목차 ※ STL #1 순차 컨테이너 ※ STL #2 연관 컨테이너 1. stack 2. queue 1. std::stack - LIFO (Last In First Out : 후입선출) 데이터 구조 ㄴ 마지막에 삽입된 데이터가 가장 먼저 삭제된다. (사용처 예시 : ctrl + z, DFS(깊이 우선 탐색) ) - deque를 바탕으로 만들어져 있다. 가. 선언 및 초기화 template //template ≒ 자유 자료형 std::stack //T : 배열에 담길 자료형 - stack s1; // 빈 스택 생성 - stack s2( {'a', 'b', 'c'} ) // 생성과 동시에 초기화 - stack s3(s2); // s2의 값을 복사하여 s3 스택 생성 나. 멤버 함수 (※ 기준 : stack s..

C++/STL 2023.06.19

[C++] STL #2 연관 컨테이너 (associate container) [set & multiset, map & multimap]

목차 ※ STL #1 순차 컨테이너 1. set & multiset 2. map & multimap 가-B. 연관 컨테이너 (associate container) - key와 같은 특정 정렬 기준(연관)에 따라 원소를 정렬하는 컨테이너 - 정렬 기준에 따라 정렬이 되므로 특정 위치를 지정한 접근 및 참조가 불가능 하다. - 노드 기반 컨테이너이다. - 균형 이진트리로 구성되어 있다. - 찾기 연산이 매우 빠르다. (균형 이진트리 때문) 1. std::set & std::mulitset - set은 원소 자체가 key가 되어 분류된 균형 이진 트리이다. - key는 유일해야 하며 key == 원소 이므로 데이터의 중복이 허용되지 않는다. ㄴ mulitset에서는 키의 중복을 허용한다. (key의 중복허용을..

C++/STL 2023.06.14

[C++] STL #1 순차 컨테이너 (Sequence Container) [array, vector, deque, list]

목차 1. STL 2. array 3. vector 4. deque 5. list 1. STL의 구성요소 STL는 표준 템플릿 라이브러리(Standard Template Library)의 약자이다. 컨테이너, 반복자, 알고리즘, 함수자 네 가지의 구성 요소를 제공한다. 가. 컨테이너(Container) - 데이터를 저장해주는 객체 나. 반복자(Iterator) - 컨테이너에서 보유하고 있는 내부 원소들을 순회할 수 있는 객체 - 포인터와 비슷한 역할을 한다. 다. 알고리즘(algorithm) - 컨테이너 내부 객체를 다루기 위해 검색, 비교, 정렬, 수정 등의 동작을 한다. - 컨테이너에 따라 사용가능한 알고리즘이 정해져있다. (효율성 때문에 적합하지 않은 컨테이너 미지원) 라. 함수자(functor) ..

C++/STL 2023.06.01