
가끔 꼭 필요한 Map 컨테이너에 대해서 알아보겠습니다. Map에 대한 정보는 C++ Reference를 참고했습니다. www.cplusplus.com/reference/map/map/?kw=map map - C++ Reference difference_typea signed integral type, identical to: iterator_traits ::difference_type usually the same as ptrdiff_t www.cplusplus.com 1. Map의 특성 Map은 Key와 Value의 쌍을 특별한 순서로 저장하고 있는 연관 컨테이너(associative container)입니다. 이진 트리로 구현되어있고, Key를 통해 Value에 접근하고자 할 때, [] 연산자를 사..

여러 가지에 사용되는 Set 컨테이너에 대해서 알아보겠습니다. Set에 대한 정보는 C++ Reference를 참고했습니다. 1. Set의 특성 Set은 Unique한 원소들을 특별한 순서에 따라 저장하는 컨테이너입니다. 여기서 Unique한 원소들은 정수를 예를 들면, 1이라는 원소는 Set 컨테이너 안에 단 1개(Unique)만 있을 수 있음을 의미합니다. Set안에 한 번 삽입한 데이터는 수정할 수 없습니다. 하지만 Insert, remove를 통해서 삽입 제거는 할 수 있습니다. Set은 보통 이진 탐색 트리로 구현되어 있습니다. 마지막으로 원소는 컨테이너 내에서 절대적인 위치로 존재하는 것이 아닌 키에 의해서 서로서로 연관되어 위치해있다.(정렬 규칙에 의해 상대적인 위치에 있음. 즉, 서로 연관..

BFS에 자주 사용되는 Queue (알고리즘 문제풀이 기준), 그리고 정렬에 자주 사용되는 Prioriry Queue(우선순위 큐, 힙)의 사용법에 대해서 알아보도록 하겠습니다. ( Queue에 대한 정보는 C++ Reference를 참고했습니다.) 1. Queue의 특성 Queue는 FIFO입니다. FIFO는 First in First out으로, 먼저 들어온 것이 먼저 나갑니다. 그냥 마트나, 뭐 놀이기구 탈 때 줄 서는 거랑 똑같다고 생각하면 됩니다. 먼저 오는 사람이 탈출구에서 가장 가깝고 먼저 서비스 받음을 알 수 있습니다. template을 보면, template class queue입니다. queue도 stack과 마찬가지로 내부적으로는 deque로 구현되어 있습니다. 그래서 queue의 메..

평소 알고리즘 문제를 풀면서 Stack의 주로 사용했던 부분들 위주로 설명한 글입니다. (C++ reference 참고했습니다.) 1. Stack의 특성 Stack은 LIFO (Last In First Out) 후입 선출입니다. 먼저 들어간 게 먼저 나오는 것이 아닌 늦게 들어간 것이 먼저 나오는 구조입니다. 그리고 자료의 삽입 및 추출(?)이 Stack의 한 곳에서만 이루어집니다. Stack의 표준 컨테이너는 Deque로 되어있습니다. ※ template class stack; 다른 STL들의 자료구조에 비해서 조금 덜 쓰이는 면이 있는 것 같습니다. 간단히 알아보도록 하겠습니다. 2. Stack의 구성 2.1) 생성자 복사 생성자나, 다른 생성자들이 있지만 Stack은 주로 텅 빈 Stack을 만드는..

이 글은 완벽한 분석은 아닙니다. 평소 알고리즘 문제를 풀 때나, 개발하면서 Vector을 사용할 때 주로 사용했던 것들만 적었습니다 :) 완전한 메뉴얼은 C++ reference를 참고하시는 걸 추천합니다. 그냥 Vector를 바로 사용하고 싶은데 잘 모르는 경우 글을 한번 쭉 읽어보고 이해정도만 하시는 걸 추천드립니다. 함수를 하나하나 살펴보기 전에 Vector의 특성에 대해 살펴보겠습니다. (C++ reference참고했습니다.) 1. Vector의 특성 Vector는 크기를 변경시킬 수 있는 시퀀스 컨테이너입니다. 배열처럼 Vector는 원소에 연속 저장 위치를 사용하므로 원소에 대한 일반 포인터의 오프셋 []을 사용하여 배열처럼 효율적으로 원소에 액세스 할 수 있습니다. 그러나 배열과는 다르게 ..