개발세리의 성장기🌿

STL) 1. STL이란 본문

algorithm/STL

STL) 1. STL이란

sery270 2020. 2. 15. 17:34

0. 표준 라이브러리

#include <stdio.h>
#include <stdlib.h>

C/Cpp 프로그래밍을 할 때, 입출력이나 메모리 할당 등등의 기능들을 ex) malloc(), printf(), scanf() 직접 구현하지 않고 사용할 수 있게 해주는 표준 라이브러리이다. 

 

1. STL
standard "TEMPLATE" library
표준 "템플릿" 라이브러리
-프로그래밍에서 공통적으로 사용되는 자료구조와 알고리즘을 작성한 것이다. 

-cpp에서 제공하는 표준 "템플릿" 라이브러리이다.

일종의 자료형이 지정되지 않은 클래스, 즉 템플릿이라는 틀을 제공하여 사용자가 원하는 자료형으로 만들어 쓸 수 있다.

더 비유적으로 템플릿은 "클래스를 만드는 클래스"라고 이해할 수 있다.

ex) 

cpp 제공 컨테이너 + 사용자 정의 = 사용자가 정의한 자료형을 다루는 컨테이너 ~ 그 컨테이너에서 관리되는 자료들 

빵 틀을 만드는 공장 + 붕어빵 틀 도안 = 붕어빵 ~ 붕어빵

stack STL + 사용자가 정의한 자료형: intint형 자료를 다루는 stack 클래스 A

~ A 클래스의 객체 (A 클래스의 동작을 따르고, 자료형이 int인 객체)

queue STL사용자가 정의한 자료형: student = student형 자료를 다루는 queue 클래스 B

~ B 클래스의 객체 (B 클래스의 동작을 따르고, 자료형이 student인 객체)

-크게 STL은 세 가지 컴포넌트를 제공한다.

즉, STL = 컨테이너(container) + 반복자(iterator) + 알고리즘(algorithm) 이다.

2. STL이 필요한 이유

- 템플릿 제공

car 클래스의 객체를 관리할 스택과 student 클래스의 객체를 관리할 스택을 따로 작성해야하는 불편함을 없애준다.  

- 컴포넌트 제공

직접 구현하지 않아도, 효율적이고 정확한 자료구조, 알고리즘을 사용할 수 있다.

ex)

컨테이너 - stack, vector, queue 등등 - 자료를 저장하는 창고 역할

알고리즘 - sort, merge 등등 - 자료를 어떻게 다룰지에 대한 기술

 

 

3. STL 장단점

-장점

이미 최적화된 코드들로 관리되고 있으므로, 코드의 효율성에 대한 신뢰가 높다.

장황하게 자료구조 알고리즘을 작성하지 않아도, 함수로 원하는 기능을 사용할 수 있으므로, 코드가 간결해진다.

 

-단점

사용법을 익혀야한다.

'algorithm > STL' 카테고리의 다른 글

STL) 5. set  (0) 2020.04.24
STL) 4. sort() 함수 사용하기  (0) 2020.03.10
STL) 3. vector와 pair 같이 쓰기  (0) 2020.03.10
STL) 2. Vector  (0) 2020.02.26
Comments