PL 문법/C++ 5

[C++] STL priority_queue 사용법

priority queue C++ STL 컨테이너 중 하나로, 내부적으로 힙 자료구조로 구현된 우선순위 큐를 보다 편하게 사용할 수 있게 해준다. 기존의 스택이나 큐 같은 자료구조의 경우, 먼저 들어왔는지 나중에 들어왔는지 같은 인덱스가 삽입된 순서에 의거하여 구성되는 자료구조 형식이라면, 우선순위 큐는 인덱스가 삽입된 순서와는 별개로 특정한 가중치를 가지고 그 가중치에 따라 순서가 결정되는 자료구조 형식이다. 보통 C++ STL에서 사용하는 priority_queue 컨테이너의 경우엔 인덱스의 크기가 가장 큰 순서대로 top에 정렬된다. (기본은 내림차순) 만약 인덱스의 크기가 가장 작은 순서대로 top에 정렬하고 싶다면, priority_queue pq; 와 같이 정렬기준을 명시하거나 그냥 삽입할때에..

PL 문법/C++ 2024.02.14

[C++] STL map / multimap 사용법

map / multimap 이란? map / multimap은 C++ 표준 라이브러리(Standard Template Library)에 있는 컨테이너로, 헤더 안에 포함되어 있다. set과 pair를 합친 느낌이다. iterator 순회 시에도 vector나 set처럼 *iter가 아니라 iter->first / iter->second로 순회한다. 이때, first가 key, second가 value이다. 구조 자체는 set과 유사하다. 값 삽입, 정렬, 탐색시에 굉장히 짧은 시간이 걸린다는 장점이 있고, 여러 STL과 마찬가지로 잘 사용하면 상당히 편리하다. map과 multimap의 차이점은 값의 중복 허용 여부이다. map의 경우 하나의 값만을 저장하는 용도이고, multimap의 경우 중복된 값을..

PL 문법/C++ 2021.08.26

[C++] STL set / multiset 사용법

set / multiset 이란? set은 C++ 표준 라이브러리(Standard Template Library)에 있는 컨테이너로, 헤더 안에 포함되어 있다. set은 쉽게 말해 하나의 집합이다. 값 삽입, 정렬, 탐색시에 굉장히 짧은 시간이 걸린다는 장점이 있고, 여러 STL과 마찬가지로 잘 사용하면 상당히 편리하다. set과 multiset의 차이점은 값의 중복 허용 여부이다. set의 경우 하나의 값만을 저장하는 용도이고, multiset의 경우 중복된 값을 허용하여 저장하게 된다. set은 원소의 값을 기준으로 삽입시 자동 정렬을 지원해준다. set / multiset 기본 함수 생성 set //원하는 자료형 및 클래스 T를 통해 생성 iterator 관련 begin() //맨 처음 iterat..

PL 문법/C++ 2021.08.26

[C++] STL Vector 사용법

Vector 란? Vector는 C++ 표준 라이브러리(Standard Template Library)에 있는 컨테이너로, 사용자가 손쉽게 사용하기 위해 정의된 class이다. Vector는 쉽게 말해 크기가 가변적으로 변하는 배열이라고 할 수 있다. 속도적인 측면에서는 배열에 비해 떨어지지만 메모리를 효율적으로 관리할 수 있다는 장점이 있어 굉장히 많이 사용한다. vector는 배열과 마찬가지로 원소들이 하나의 메모리 블록에 연속하게 저장된다. 그렇기에 원소가 추가되거나 삽입될 때 메모리 재할당이 발생할 수 있고 상당한 부하가 발생하게 된다는 점은 단점으로 꼽히고 있다. Vector의 구조 Vector를 생성하면 메모리 heap에 생성되며 동적할당된다. front() : 첫번째 원소 back() : 마..

PL 문법/C++ 2021.07.13

[C++] C++ 표준 라이브러리

STL : 표준 템플릿 라이브러리 (Standard Template Library) C++를 위한 라이브러리로서 C++ 표준 라이브러리의 많은 부분에 영향을 끼쳤다. C++ 표준 라이브러리 (C++ Standard Library) C++과 C++ ISO 표준 자체로 쓰여진 클래스들과 함수들의 집합이다. C++ 표준 라이브러리는 여러 Generic 컨테이너들, 그리고 이러한 컨테이너들과 함수 객체, Generic 문자열, stream, 몇몇 언어 특징 그리고 power 연산 같은 작업을 위한 함수들을 제공한다. C++ 표준 라이브러리의 특징은 namespace 내에 선언된다는 것이다. (.h 헤더가 아님) C++ 표준 라이브러리와 STL이 많은 특징들을 공유하지만, 둘 중 어느것도 다른 하나의 상위 집합은..

PL 문법/C++ 2021.07.13
728x90