1. 할당자
STL컨테이너는 할당자 타입을 템플릿 파라미터로 받는다.
ex) vector 템플릿 정의
template<class T, class Allocator = allocator<T>> class vector;
2. 반복자 어댑터
2.1 역뱡항 어댑터
reverse_iterator를 이용하면 역방향 탐색을 할 수 있다.
typedef reverse_iterator와 rbegin(), rend() 메서드를 지원한다.
2.2 스트림 반복자
입출력 스트림을 입출력 반복자로 취급할 수 있는 스트림 어댑터를 제공한다.
ostream_iterator(출력 스트림 반복자), istream_iterator(입력 스트림 반복자)
ex)
std::vector<int> myVector;
for (int i = 0; i < 10; i++) {
myVector.push_back(i);
}
std::copy(myVector.begin(), myVector.end(), std::ostream_iterator<int>(std::cout, " "));
2.3 삽입 반복자
항목을 교체하지 않고 컨테이너의 삽입 메서드를 호출하여 새로운 항목을 생성하게 한다.
insert_iterator, back_insert_iterator
ex)
remove_copy_if(vectorOne.begin(), vectorOne.end(), inserter, [](int i){return i == 100;});
2.4 이동 반복자
객체를 대입할 때 불필요한 복제 생성자를 호출하지 않는 이동 시맨틱을 따라는 반복자
move_iterator
'프로그래밍 > C,C++' 카테고리의 다른 글
가상 메모리 및 Large Address Aware (0) | 2020.02.19 |
---|---|
C++ 연산자 오버로딩 (0) | 2018.04.25 |
유틸리티 라이브러리 (0) | 2018.04.18 |
문자열과 정규 표현식 (0) | 2018.04.15 |
함수 객체 (0) | 2018.04.15 |