자 이제 module 08까지 왔다.
cpp module을 지금까지 공부했다면, stl이 뭔지는 정확히 알고 가야한다고 생각한다.
나는 module00에서 stl을 한번 봤었지만 중요한 내용인 만큼, 이번 08장에서 다시 한번 stl을 보도록하자.
이제야 Template라는 단어가 완전 이해된다. stl은 사용하기 편하게 템플릿 형태로 자료구조와 알고리즘을 제공해주는 것!
구성요소 | 설명 |
---|---|
컨테이너(containor) | 객체를 저장하는 객체로 컬렉션 or 자료구조(vector, list 등등)라 부른다. (클래스 템플릿으로 구현) |
반복자(iterator) | 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 다음 원소 또한 가리키게함. |
알고리즘(Algorithm) | 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿 |
함수객체 | 함수처럼 동작하는 객체로 opeartor() 연산자를 오버로딩한 객체다. |
어댑터 | 구성 요소의 인터페이스를 변경해 새로운 인터페이스를 갖는 구성요소로 변경함. ex) stack, queue, priority_queue |
할당기 | 컨테이너의 메모리 할당 정책을 캡슐화한 클래스 겍체, 모든 컨테이너는 자신만의 기본 할당기를 갖는다. |
Standard Containers
같은 타입의 객체를 저장, 관리할 목적으로 만들어진 클래스 템플릿.
STL 컨테이너는 템플릿으로 만들어져 있기 때문에 기본적인 조건만 맞으면 어떤 데이터 타입이든 수용 가능하다.
컨테이너는 요소의 저장 공간을 관리하고 직접 또는 반복자를 통해 액세스할 수 있는 멤버 함수를 제공합니다
stl에서 컨테이너는 5개의 카데고리로 나뉘어진다.
컨테이너의 종류를 나누는 방법은 크게 두가지가 있다.
선형 또는 비선형, 데이터 저장 방식에 따른 구분,