STL은 표준 C++ 라이브러리의 일부분으로 Standard Template Library의 약자입니다.
STL은 프로그램에 필요한 자료구조와 알고리즘을 템플릿으로 제공하는 라이브러리입니다.
자료구조와 알고리즘은 서로 반복자라는 구성요소를 통해 연결합니다.
[STL의 구성요소]
컨테이너( Container ) : 객체를 저장하는 객체로 컬렉션 혹은 자료구조라고도 합니다.
반복자( Iterator ) : 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는원소에 접근하여 다음원소를 가리키게하는 기능을 합니다.
알고리즘( Algorithm ) : 정렬, 삭제, 검색, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿입니다.
함수객체( Function Object ) : 함수처럼 동작하는 객체로 operator() 연산자를 오버로딩한 객체입니다. 컨테이너와 알고리즘 등에 클라이언트 정책을 반영하게 합니다.
어댑터( Adaptor ) : 구성 요소의 인터페이스를 변경해 새로운 인터페이스를 갖는 구성요소로 변경합니다(새로운 구성 요소처럼 보입니다)
할당기( Allocator ) : 컨테이너의 메모리 할당 정책을 캡슐화한 클래스 객체로 모든 컨테이너는 자신만의 기본 할당기를 가지고 있습니다.
[STL의 3가지 특징]
효율성, 일반화 프로그램( 재사용성), 확장성
STL알고리즘은 너무나도 일반적입니다. 특정한 자료구조와 형식에 종속저이지 않고, 효율성도 다른 라이브러리에 뒤지지않을 뿐만아니라 사용자가 작성한 구성 요소와도 잘 동작하며, 확장성도 뛰어납니다.
'0x0001 > STL' 카테고리의 다른 글
[C++ STL] 연관 컨테이너 - 셋(set) (0) | 2019.02.16 |
---|---|
[C++ STL] 시퀀스 컨테이너 - 리스트(list) (0) | 2019.02.16 |
[C++ STL] 시퀀스 컨테이너 - 덱(deque) (0) | 2019.02.16 |
[C++ STL] 시퀀스 컨테이너 - 벡터(vector) (0) | 2019.02.16 |
[C++ STL] STL 구성요소( 컨테이너, 반복자, 알고리즘, 함수객체, 어댑터, 할당기 ) (0) | 2019.02.16 |