stl 이란 Standard Template Library 의 줄임말이다.
표준 템플릿 모음이란 뜻이다.
그렇다면 템플릿이란 무엇인가?
템플릿이란 어떠한 것을 정해놓은 틀, 규격 같은 것을 말한다.
프로그래밍 언어에서 쓰이는 의미는 코드를 컴파일러가 컴파일 시점에 생성하게 하는 것을 말한다.
ex)int sum(int a,int b) return a+b;
라는 함수가 있다고 하면, 이것은 int형 데이터타입만 처리 가능하다.
만약에 다른 데이터 타입을 처리하고 싶다면, 따로 오버로딩이 필요하다.
double sum(double a,double b) return a+b;
하지만 이것을 템플릿으로 만든다면
template <typename T>
T sum(T a,T b) return a+b;
라 할 수있고, 저 T라는 것은 데이터 타입을 의미한다. 데이터 타입은 컴파일러가 컴파일 시점에 정해서 실행한다.
이렇게 하면 저 코드 하나로 모든 데이터 타입을 처리할 수 있다.
이러한 것을 템플릿이라 한다.
즉 stl 이라는 것은 템플릿 모음을 표준으로 제공해준다는 뜻이다.
이러한 stl은 크게 4가지로 분류 가능하다.
1. 컨테이너
2. 반복자
3. 함수자
4. 알고리즘
1. 컨테이너
컨테이너란 컨테이너박스라 생각하면 쉽다. 어떠한 자료를 저장하는 공간이다.
stl에서는 vector, list, queue, stack, map, set 등이 있다. 각각의 컨테이너는 자료를 담는 특징이 있다.
2. 반복자
반복자란 쉽게 말하면 포인터라고 보면된다.
stl에서는 stl 컨테이너에 접근할 수 있는 반복자를 제공해준다.
iterator라 하며, 해당 컨테이너에서 특정 요소에 접근할 수 있게 해준다.
3. 함수자
함수자란 연산자를 말한다. (++,--,<,> ....)
4. 알고리즘
제공하는 알고리즘이 여러가지 있는데, 대표적으로 sort() 같은 것이다. 참고로 sort()는 퀵정렬을 바탕으로 동작한다.
'게임개발 수업' 카테고리의 다른 글
OOP의 특징 (0) | 2022.11.16 |
---|---|
STL vector (0) | 2022.11.08 |
스택 프레임, 메모리 누수, 가비지 컬렉션, 메모리 단편화 (1) | 2022.10.31 |
메모리 구조 (0) | 2022.10.26 |
2022-10-11 자료형, 연산자 우선 순위 (1) | 2022.10.11 |