본문 바로가기

카테고리 없음

[C++]STL이란 무엇인가?



STL



STL이란?

STL이란 Standard Template Library의 약자로, C++언어에 제공되는 표준 라이브러리입니다.  

STL을 제대로 다루기 위해서는 C++에 대한 기본적인 문법적 이해, 특히 템플릿에 대한 전반적인 이해가 필요합니다.

자료구조를 클래스화시킨 컨테이너(container)와 컨테이너를 다루기위한 알고리즘,반복자,함수객체,조건자등등을 제공합니다.



STL을 왜 쓰는가?

C++코드 작성시에 vector,list,map등등 핵심적인 자료구조를 사용해야 할때가 있습니다. 

하지만 매번 사용시마다 정의해서 쓰다보면 많은 시간이 소요되는데요.

STL을 사용하면 프로그래밍의 많은 시간이 단축되고, 템플릿이라는 강력한 기능을 사용하므로써 유지보수와 확장이 쉬워집니다. 

STL에서 사용되는 알고리즘,컨테이너는 충분히 최적화되고 테스트되어서 성능이 굉장히 뛰어납니다.


STL의 장점과 단점

ㆍ장점

1.소스코드가 대폭 축소됩니다.

2.필요하다면 사용자만의 알고리즘을 적용시킬수있습니다.(확장성)

3.최적화와 테스트가 많이 이루어져있습니다.


단점

1.사용시 오류가 날경우 디버깅이 굉장히 힘듭니다.(STL의 내부로 들어가봐야해서)

2.다양한 구현을 하다보면 프로그램이 커질 가능성이 있습니다.

그렇기때문에 그만큼 사용시에 주의를 기울여야합니다.

3.반복자와 컨테이너가 분리되어서 존재하기때문에 쓰레드 프로그래밍시에 문제발생의 여지가 있습니다.