검색결과 리스트
글
예제를 만들어 하나씩 살펴보고 직접 해보시면 꽤 간단하게 프로그램이 만들어 지는 것을 경험 하실 겁니다. 우선 STL에 대해 살펴 보겠습니다.
STL에는 6가지의 주요 component가 있습니다.
1. container : data set 이라고 생각하시면 쉽게 이해 됩니다.
2. generic algorithm : <algorithm> 과 container 자체에 있는 Algorithm 입니다.
3. iterator : C/C++의 포인터와 같이 Conatiner의 요소를 지정할 수 있는 객체입니다.
container를 잘 사용할려면 반드시 알아야 합니다.
보통 서적에서는 반복자라는 말을 쓰던데 특성을 보고 이름을 그리 붙인것 같습니다.
4. function object : accumlate 같은 것인데 그리 범용이라고 보기는 힘들지만..
5. adaptor : component의 interface를 변경하는 component입니다.
6. allocator : 할당기라고 하는데요. STL container는 allocator class를 사용하여 프로그램에서
사용하고 있는 메모리 할당 관련 정보를 캡슐화 하고 있습니다.
우선 Container를 보구요 다른 내용은 예제로 자세히 보는 것이 좋을 것 같습니다.
아래 내용은 STL Tutorial and Reference Guide 2nd 내용입니다.
Container
객체들의 컬렉션을 저장하고 있는 객체를 STL에서는 컨테이너라고 합니다.
두가지 종류가 있는데 Sequence Container , Sorted Associative Container 입니다.
→ Sequence Container : 타입이 동일한 객체들을 선형으로 구성한 컬렉션
- vector<T> : 가변길이 시퀀스를 임의 접근 할 수 있으며, 시퀀스 맨 끝에서 수행되는 삽입과
삭제는 아모타이즈드 상수 시간에 수행이 가능합니다.
참고 : 임의접근(random access)이 가능하다는 것은 시퀀스 i 번째 원소를 접근하는데 걸리
는 시간이 상수 시간이라는 것을 의미합니다. 이는 몇 번째이건 관계없이 항상 일정 하다는
것입니다.
- deque<T> : 가변길이 시퀀스를 임의 접근 할 수 있으며 시퀀스 맨 앞과 맨 끝에서 수행되는
삽입과 삭제는 모두 아모타이즈드 상수 시간에 수행이 가능합니다.
- list<T> : 가변길이 시퀀스에 대해서 선형 시간 접근만이 가능하며, 삽입과 삭제는 시퀀스 내
에서라면 어디서든지 상수 시간 내에 수행이 가능합니다.
→ Sorted Associative Container : 주어진 키로 컬렉션에서 객체를 신속하게 찾을 수 있는
기능을 제공합니다. 컬렉션의 사이즈는 실행시에 변할 수 있고 네 가지 타입이 있습니다.
- set<Key> : 유일키를 지원하며, 원하는 키를 신속하게 찾아 냅니다.
- multiset<Key> : 중복키를 지원하며, 원하는 키를 신속하게 찾아 냅니다.
- map<Key, T> : 유일키를 지원하며, 주어진 키로 원하는 객체를 신속하게 찾아 냅니다.
- multimap<Key, T> : 중복키를 지원하며, 주어진 키로 원하는 객체를 신속하게 찾아 냅니다.
STL Component
STL Container Types
RECENT COMMENT