STL = Standard Template Library(표준 템플릿 라이브러리)
C++을 위한 라이브러리로서 알고리즘, 컨테이너, 함수자, 반복자라고 불리는 네가지의 구성요소를 제공합니다.
1. 컨테이너
데이터를 저장하는 객체로서 표준컨테이너로는 vector, deque, list를 포함합니다.
2. 반복자(iterator)
STL은 반복자의 5가지 종류를 구현합니다.
Input iterator(읽기), Output iterator(쓰기), forward iterator(읽기, 쓰기), bidirectional iterator(읽기, 쓰기, 뒤로가기),
Random Access iterator(한 연산내에서 자유롭게 이동이 가능)
3. 알고리즘.
어떠한 문제를 해결하기 위한 여러 동작들의 모임.
유한성을 가진다.
알고리즘의 조건.
1. 입력 : 외부에서 제공되는 자료가 0개 이상 존재한다.
2. 출력 : 적어도 2개 이상의 서로 다른 결과를 내야한다.(모든 입력에 하나의 출력이 나와선 안됨)
3. 명확성 : 수행과정은 명확하고 모호하지 않은 멸령어로 구성되어야 한다.
4. 유한성(종결성) : 유한번의 명령어를 수행 후(유한 시간 내)에 종료한다.
5. 효율성 : 모든 과정은 명백하게 실행 가능(검증가능)한 것이여야 한다.
4. 함수자(functor)
operator() 연산자를 중복하고 있는 클래스의 객체를 함수객체(function object) 혹은 함수자(functor)라 합니다.
STL 함수자는 크게 두가지로 나눌 수 있습니다.
1. 일반 함수자 : 특정 기능을 수행하는 함수자.
- 산술 연산 함수자 : 산술 연산 기능을 수행.
- 비교 연산 함수자 : 비교 연산 기능을 수행.
- 논리 연산 함수자 : 논리 연산 기능을 수행.
2. 함수 어댑터 : 함수류(함수와, 함수 포인터, 함수자)를 인자로 받아 새로운 함수자를 생성.
- 바인더(binder) : 이항 함수자를 단항 함수자로 변환하는 함수자.
- 부정자(negator) : 조건자(predicate)를 반대로 변환하는 함수자.
- 함수포인터 어댑터(adaptors for pointersto functions) : 맴버 함수 포인터를 라이브러리가 필요로 하는 함수자를 변환하는 함수자.
'C++' 카테고리의 다른 글
| STL 리스트(List) (0) | 2019.05.14 |
|---|---|
| STL 벡터(vector) (0) | 2019.05.14 |
| 선형, 비선형 자료구조. (0) | 2019.05.13 |
| 배열(Array) (0) | 2019.05.13 |
| 스택, 큐, 덱 (0) | 2019.05.13 |