# 반복자 어댑터(Iterator adaptors)
반복자를 결과로 리턴하는 함수다. 가장 일반적인 것은 insert_iterator를 생성하는 어댑터이다.
이 insert_iterator는 연관된 컨테이너의 크기를 동적으로 확장시키는 반복자이다. 이러한 반복자들은 복사 알고리즘의 목적지로
안전하게 사용될 수 있다. <iterator>헤더에 정의되어 있다.
■ back_inserter(c)
컨테이너 c에 대한 반복자를 내어준다. 이 반복자는 c에 요소들을 추가하는 반복이다.
컨테이너는 push_back을 지원해야 하며 list, vector 및 string 타입이 가능하다.
■ front_inserter(c)
back_inserter와 비슷하지만, 이 반복자는 컨테이너의 앞에 삽입한다. 컨테이너는 push_front를 지원해야 하며,
list는 가능하지만 string이나 vector는 사용할 수 없다.
■ inserter(c, it)
back_inserter와 비슷하지만, 반복자 it의 앞에 요소를 삽입한다.
# 알고리즘 컨테이너(Alforithms container) : 연산은 <algorithm>에 정의된다.
■ accumulate(b, e, t)
t의 복사본을 (t와 같은 타입으로 즉, t의 타입이 accumulate의 결과를 결정하는데 있어서 매우 중요하다) 만들고, [b, e)의
각 요소를 t의 복사본에 더하여, 그 결과로 t의 바뀐 복사본에 대한 복사본을 리턴한다. <numeric>에 정의 되어있다.
■ find(b, e, t), find(b, e, p), search(b, e, b2, e2)
[b, e)의 시퀀스에서 주어진 값을 찾는 알고리즘이다. find 알고리즘은 갑 t를 찾고, find_if 알고리즘은 각 요소를 동작하는
동작함수 p에 대해 테스트한다.
search 알고리즘은 [b2,e2)가 가리키는 시퀀스를 찾는다.
■ copy(b, e, d)
■ remove_copy(b, e, d, t)
■ remove_copy_if(b, e, d, p)
[b, e)의 시퀀스를 d가 가리키는 목적지로 복사하는 알고리즘들. copy 알고리즘은 모든 시퀀스를 복사하며, remove_copy는
t와 같지 않은 모든 요소들을 복사한다. remove_copy_if는 동작함수 p가 실패하는 모든 요소들을 복사한다.
■ remove(b, e, t)
remove_if와 같지만, 값 t와 비교하여 어느 값을 유지할지를 결정한다.
■ transform(b, e, d, f)
[b, e) 범위의 요소들에 대하여 함수 f를 실행하여, f의 결과를 d에 저장한다.
■ partition(b, e, p), stable_partition(b, e, p)
[b, e) 범위의 요소들을 동작함수 p에 기반하여 분할한다. 동작 함수 true인 요소들을 컨테이너 앞쪽에 위치하게 된다.
반복자를 리턴하여 동작함수가 false인 첫 번째 요소들에 대한 반복자를 리턴한다. 만약, 모든 요소들에 대한 동작 함수가
true라면 e를 리턴한다.
stable_partition 함수는 각 분할(partition) 내 요소들의 입력 순서를 그대로 유지한다.
'프로그래밍 > STL' 카테고리의 다른 글
C++,STL :: 연관 컨테이너(associative container) 연산 (0) | 2010.09.04 |
---|---|
C++,STL :: map을 이용한 문장 생성 (0) | 2010.09.04 |
C++,STL :: 연관 컨테이너를 이용한 단어 갯수 세기(교차참조 테이블) (0) | 2010.09.01 |
C++,STL :: 라이브러리를 이용한 URL찾기 (0) | 2010.08.31 |
C++,STL :: 문장을 단어로 나누는 함수 만들기 (0) | 2010.08.31 |