본문 바로가기

Programming Study/STL

STL 컴포넌트 개요 STL에는 여섯 가지의 주요 컴포넌트 즉, 컨테이너(container), 제네릭 알고리즘(generic algorithm), 반복자(iterator), 함수 객체(function object), 어댑터(adaptor), 할당기(allocator)가 포함되어 있다. 1. 컨테이너(container) 객체들의 컬렉션(collection)을 저장하고 있는 객체를 STL에서는 컨테이너(container)라고 부른다. STL에는 두 가지 종류의 컨테이너가 있는데, 하나는 시퀀스 컨테이너(sequence container)이고, 다른 하나는 정렬 연관 컨테이너(sorted associative container)이다. 1-1 시퀀스 컨테이너(sequence container) 시퀀스 컨테이너는 타입이 동일한 객체들.. 더보기
소개 표준 템플릿 라이브러리(STL)에서는 다양한 종류의 C++ 컨네이너 클래스와 알고리즘이 제공된다. 이들을 서로 적절히 조합하여 사용하면, 여러 방면에 걸쳐 유용한 기능들을 수행해 낼 수 있도록 설계되어 있다. 비록 제공되는 컨테이너 클래스의 개수가 그다지 많은 편은 아니지만, 벡터, 리스트, 셋, 맵 등과 같이 자주 사용되는 컨테이너들은 거의 대부분 포함되어 있다. 템플렛 알고리즘 컴포넌트에는 가장 흔한 데이터 조작에 해당되는 검색, 정렬, 머지 등을 위한 알고리즘들이 다양하게 포함되어 있다. STL이 다른 C++ 컴테이너 클래스 라이브러리와 구분되는 가장 큰 차이점은 바로 STL 알고리즘은 모두 제네릭하다는 것이다. 즉, STL의 알고리즘은 내장 타입과 다양한 컨테이너 상에서 모두 수행이 가능하며, 심.. 더보기
STL에 들어가기에 앞서 STL(Standard Template Library) - 표준 템플릿 라이브러리 - 다양한 제네릭 알고리즘과 데이터 구조로 구성된 범용 라이브러리 STL은 다음 네 가지의 기본적인 아이디어를 바탕으로 설계되었다. - 제네릭 프로그래밍(generic programming) - 효율성(efficiency)의 저하가 없는 추상화(abstraction) - Von Neumann 계산 모델 - 값 개념(value semantic) 제네릭 프로그래밍 제너릭 프로그래밍은 C++이나 템플릿과는 아무런 관련이 없으며, 여러 유용한 소프트웨어 컴포넌트들을 체계적으로 엮어내는 방법을 연구하는 학문이다. 제네릭 프로그래밍의 목적은 알고리즘, 데이터구조, 메모리 할당 메커니즘, 그리고 기타 여러 소프트웨어적인 장치들을 발전시.. 더보기