![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b6vtI3/btqZJ6n4vWN/g4PiAib4NtycGIos2ybImk/img.png)
가끔 꼭 필요한 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에 접근하고자 할 때, [] 연산자를 사..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cTKOSg/btqGFbgZQaM/pknK1KK2d7rwLCclApD2zK/img.png)
여러 가지에 사용되는 Set 컨테이너에 대해서 알아보겠습니다. Set에 대한 정보는 C++ Reference를 참고했습니다. 1. Set의 특성 Set은 Unique한 원소들을 특별한 순서에 따라 저장하는 컨테이너입니다. 여기서 Unique한 원소들은 정수를 예를 들면, 1이라는 원소는 Set 컨테이너 안에 단 1개(Unique)만 있을 수 있음을 의미합니다. Set안에 한 번 삽입한 데이터는 수정할 수 없습니다. 하지만 Insert, remove를 통해서 삽입 제거는 할 수 있습니다. Set은 보통 이진 탐색 트리로 구현되어 있습니다. 마지막으로 원소는 컨테이너 내에서 절대적인 위치로 존재하는 것이 아닌 키에 의해서 서로서로 연관되어 위치해있다.(정렬 규칙에 의해 상대적인 위치에 있음. 즉, 서로 연관..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b72lma/btqGdr4Ccjw/h3LnJaj76aTkiWvPYzr29k/img.png)
BFS에 자주 사용되는 Queue (알고리즘 문제풀이 기준), 그리고 정렬에 자주 사용되는 Prioriry Queue(우선순위 큐, 힙)의 사용법에 대해서 알아보도록 하겠습니다. ( Queue에 대한 정보는 C++ Reference를 참고했습니다.) 1. Queue의 특성 Queue는 FIFO입니다. FIFO는 First in First out으로, 먼저 들어온 것이 먼저 나갑니다. 그냥 마트나, 뭐 놀이기구 탈 때 줄 서는 거랑 똑같다고 생각하면 됩니다. 먼저 오는 사람이 탈출구에서 가장 가깝고 먼저 서비스 받음을 알 수 있습니다. template을 보면, template class queue입니다. queue도 stack과 마찬가지로 내부적으로는 deque로 구현되어 있습니다. 그래서 queue의 메..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4E6CC/btqGchU3uHD/aq8DcHSFo1NjJTkUlsZhQK/img.png)
평소 알고리즘 문제를 풀면서 Stack의 주로 사용했던 부분들 위주로 설명한 글입니다. (C++ reference 참고했습니다.) 1. Stack의 특성 Stack은 LIFO (Last In First Out) 후입 선출입니다. 먼저 들어간 게 먼저 나오는 것이 아닌 늦게 들어간 것이 먼저 나오는 구조입니다. 그리고 자료의 삽입 및 추출(?)이 Stack의 한 곳에서만 이루어집니다. Stack의 표준 컨테이너는 Deque로 되어있습니다. ※ template class stack; 다른 STL들의 자료구조에 비해서 조금 덜 쓰이는 면이 있는 것 같습니다. 간단히 알아보도록 하겠습니다. 2. Stack의 구성 2.1) 생성자 복사 생성자나, 다른 생성자들이 있지만 Stack은 주로 텅 빈 Stack을 만드는..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/AHf5p/btqF80fubaz/qpDAwaZomXNyUh1ZXV8kJk/img.png)
이 글은 완벽한 분석은 아닙니다. 평소 알고리즘 문제를 풀 때나, 개발하면서 Vector을 사용할 때 주로 사용했던 것들만 적었습니다 :) 완전한 메뉴얼은 C++ reference를 참고하시는 걸 추천합니다. 그냥 Vector를 바로 사용하고 싶은데 잘 모르는 경우 글을 한번 쭉 읽어보고 이해정도만 하시는 걸 추천드립니다. 함수를 하나하나 살펴보기 전에 Vector의 특성에 대해 살펴보겠습니다. (C++ reference참고했습니다.) 1. Vector의 특성 Vector는 크기를 변경시킬 수 있는 시퀀스 컨테이너입니다. 배열처럼 Vector는 원소에 연속 저장 위치를 사용하므로 원소에 대한 일반 포인터의 오프셋 []을 사용하여 배열처럼 효율적으로 원소에 액세스 할 수 있습니다. 그러나 배열과는 다르게 ..