◎ STL 소개
ㅇ 자료구조와 알고리즘
자료구조: 처리하고자 하는 데이터를 표현하는 방법
알고리즘 : 이 자료들을 가공하여 유용한 정보를 생산하는 기법
ㅇ일반화
일반화(Generic)는 객체 지향의 다음 세대라고 일컬어진다.
1. 임의 타입에 사용할 수 있는 자료 구조를 만들 수 있다.
ex) C++의 템플릿 문법
2. 자료 구조의 형태나 구조에 상관없이 임의의 데이터 집합에 적용할 수 있는 일반화된 알고리즘을 제공
※ 일반화의 개념에 의해 자주 사용되는 자료 구조와 제공하는 알고리즘을 라이브러리가 STL 이다.
ㅇ STL (Stand Template Library) 이란?
- 템플릿의 집합을 제공하는 라이브러리
- 장점
① 일반화를 지원 : 하나의 단일 알고리즘으로 복수 개의 컨테이너에 동일한 작업을 똑같은 방법으로 수행
② 실행시의 효율 저하가 없다 : 컴파일 타임 매커니즘 사용
③ 객체지향적이지 않다. : 알고리즘 함수 ==> 대부분 전역, 멤버 함수 제공은 드물다.
상속개념 많이 사용하지 않음, 가상함수 사용하지 X(느림)
모든 선택 컴파일 중에 정적으로 결정
④ 이식성 확보 : 표준
⑤ 확장 가능
- 단점
① 코드가 비대해 진다 : 템플릿 기반 => 똑같은 컨테이더라도 타입이 바뀌면 따로 생성, 속도향샹을 위해 코드 크기 포기
② 가독성이 떨어진다 : 템플릿 기반, 소스가 난해 하기 때문에 디버깅 및 유지 보수 비용 증가
③ 배우기에 쉽지 않다. : C++ 문법에 익숙한자, 익숙하게 사용하려면 반년정도 걸림
④ 예외 처리와 잘 맞지 않음
ps : 자세한 내용은 www.WinAPI.co.kr 참고
'[ C/ C++ 프로그래밍 ] > [ STL ]' 카테고리의 다른 글
[ 혼연 정리 ] 함수객체- 2 [알고리즘의 변형] (2) | 2010.06.24 |
---|---|
[ 혼연 정리 ] 함수객체- 1 [함수객체] (0) | 2010.06.24 |
[ 혼연 정리 ] STL 개요 - 4 [알고리즘] (1) | 2010.05.31 |
[ 혼연 정리 ] STL 개요 - 3 [ 반복자] (0) | 2010.05.31 |
[ 혼연 정리 ] STL 개요 - 2 [ STL의 구조, 컨터이너 ] (2) | 2010.05.25 |