C++/STL 6

[기본지식] sort() 내림차순 정렬

algorithm 헤더에 포함되어 있는 sort함수는 여러모로 편리하고 많이 쓰이지만 기본 차순이 오름차순으로 되어있다. 정렬후 reverse해줘도 되지만 내림차순으로 정렬하는 방법도 있다. functional헤더 추가 후 아래와 같이 greater()임시객체를 콜하는 방법이다. #include #include #include #include using namespace std; int main() { vector v = {3,2,4,5,1}; sort(v.begin(), v.end(), greater());

C++/STL 2022.09.14
Map container 정리

Map이란? C++의 STL에서 연관 컨테이너 중 하나인 map은 레드 블랙 트리로 구성되어 있다. 레드 블랙 트리는 자가 균형 이진 탐색 트리로 삽입과 삭제가 일어나는 경우에 자동으로 그 높이를 작게 유지하는 것이 특징이다. 이 이유는 연산 과정에서 트리의 높이가 한쪽으로 치우치는 것을 막아 시간복잡도 상의 이득을 보기 위함이다. n개의 원소가 있을 때 map은 O(log n)의 시간 복잡도로 삽입, 삭제, 검색을 할 수 있다. key값은 중복이 불가능하며 만약 동일한 key가 있는데 insert를 시도할 시 무시된다. 또한 key값은 오름차순 자동정렬되는데 정렬을 하고싶지 않다면 unordered_map(해시)를 선언해 성능을 높일 수 있다. 선언하는 법 헤더파일에 map을 include 시켜주고, ..

C++/STL 2022.08.05
STL이란 무엇인가?

STL? STL은 Standard Template Library의 약자로, C++에서 제공하는 '표준(Standard)' 라이브러리이다. STL은 다양한 자료구조를 클래스화시킨 컨테이너(Container) 와 이를 다루기 위한 알고리즘, 반복자, 조건자, 함수객체 등을 제공한다. Container 의 종류 1. 순차 컨테이너(시퀀스 컨테이너) : Vector, List, Deque... 2. 연관 컨테이너 : Set, Map, Multiset, Multimap... 3. 어댑터 컨테이너 : Stack, Queue... Container 요약 1. Vector : 적은 양의 자료에 유리하고, 순차 접근, 랜덤 엑세스, 크기 변경이 가능하다. 하지만 Vector의 중간에 값을 삽입, 삭제, 검색하는 것이 느..

C++/STL 2022.08.04