
STL이란 Standard Template Library의 약자로, 자료구조를 따로 구현하지 않아도 사용할 수 있도록 만든 편의용 라이브러리다. 매우 편하고 방대하기 때문에 없어서는 안 될 귀중한 존재이다. 양이 매우 많아 모두 다룰 수 없으므로 자주 사용하는 몇 가지만 정리한다. 표준 STL은 std namespace 내에 존재하므로 사용 시 명시해주어야 한다. STL이 제공해주는 기능은 대략적으로 다음과 같다. 자료구조 : List, Stack, Queue, Tree, Hash 등 알고리즘 : Sort, Binary tree, Heap opration 등 기타 유틸리티(날짜, 시간), Thread, Concurrency 등 STL의 중요 요소 중 컨테이너 / 반복자 / 알고리즘에 대해 간단히 정리한다..

자료구조의 궁극적인 목적은 어떤 종류의 자료구조를 언제 쓰는게 제일 좋은지 알기 위함이다. 필요한 경우 자신이 구현해야 할 수도 있기 때문에, 기본적인 자료구조의 원리와 장단점을 잘 알아두어야 한다. 그리고 주변 개발자들은 다 이해하고 술술 말하는데 나만 까먹어서 어버버하면 머쓱하기 때문에 잘 알아두어야 한다. Array 처음 변수를 선언할 때 명시한 변수 타입의 크기만큼 큰 메모리 영역 (chunk) 이 통째로 생긴다. 즉, 해당 변수에 대한 값은 실제로 서로 붙어있는 형태로 메모리에 저장된다. 얼마나 큰 영역이 생기는지는 C++ 기준 sizeof(type) 으로 확인할 수 있다. Array의 가장 큰 장점은 n번째 index에 O(1)의 시간복잡도로 접근이 가능하다는 점이다. 그 어떤 부가적인 확인을..