'Iterator'에 해당되는 글 2건

  1. 2012.10.23 STL(Standard Template Library) for C++

STL(Standard Template Library, 표준 템플릿 라이브러리)

프로그램설계에 필요한 자료구조 및 알고리즘을  Template으로 제공하는 Library이다.

STL은 안정성보다는 빠른속도를 목표로 하고있기때문에 방어적인 코딩이 필요하다.

STL컨테이너와 STL알고리즘으로 구성된다.


STL컨테이너

일종의 컬렉션 클래스

- 같은종류의 데이터의 모임

- 같은 데이터 형의 데이터를 저장하고 읽어오기 위한 자료구조 클래스

일반적으로 많이 사용하는 동적 배열이나 연결리스트, 맵 등

STL알고리즘

자주 사용되는 유용한 알고리즘을 함수 템플릿으로 정의

프로그램 개발시 많이 사용되는 데이터 검색이나 정렬, 최소값/최대값 찾기 등


STL의 장점

STL은 성능이 우승하고 안정성이 검증된 라이브러리이다.

STL은 표준 C++라이브러리 이다.

- 대부분의 C++ 컴파일러는 STL을 지원한다

- 다양한 시스템에 호환성이 있는 코드를 작성하려면 표준 라이브러리의 사용이 필수적이다.



STL 컨테이너

컨테이너 : 비슷한 성질의 객체를 모아서 관리하기 위한 목적으로 삽입하거나 삭제하여 정렬하는 특성가짐

시퀀스 컨테이너

데이터를 순차적으로 저장, 삽입된 데이터를 저장할때 별도의 제약을 갖지 않는다

시퀀스 컨테이너의 임의의 위치에 원소를 삽입/삭제 가능

  Ex) vector, deque, list

연관 컨테이너 

데이터를 무조건 저장하는것이 아니라 일정 규칙에 따라 정렬에 데이터가 저장되는 컨테이너 -> 검색속도가 빠르다.

  Ex) set, multiset, map, multimap

어댑터 컨테이너

순차 컨테이너를 변형하여 데이터를 미리 정해진 방식에 따라 관리

데이터를 삽입하고 제거하는 순간 항상 컨테이너의 규칙에 의해서 결정

  Ex) queue, stack, priority queue



iterator 클래스

iterator는 반복자고 하는데, STL컨테이너의 원소에 접근하는 포인터와 비슷한 역할을 제공한다.

STL컨테이너의 특정 원소를 가리키며 ++연산자를 이용해서 다음원소를 가리킬수도 있고, *연산자를 이용해서 특정 원소에 접근할 수도 있다.

STL컨테이너는 첫번째 원소를 가리키는 iterator를 리턴하는 begin함수와 마지막원소를 가리키는 iterator를 리턴하는 end함수를 제공한다.


STL에 적용되는 함수

binary_search : 정렬되어있는 범위 내의 원소에서 이진검색

find : 원소검색

for_each 주어진 범위내의 각 원소에 대해 함수 객체를 적용

max : 최대값

min : 최소값

remove : 원소제거

replace : 원소를 찾아 값변경

sort : 오름차순으로 정렬



제너릭 프로그래밍

데이터가 보관되는 형식과 데이터를 처리하는 알고리즘을 분리하여 서로 독립적으로 관리할 수 있는 프로그래밍 방식

데이터가 보관되는 형식과 관계없이 동일한 방법으로 처리할수 있는 알고리즘을 구현하는 것이 목표


Posted by No names
,