본문 바로가기

STL3

chapter 7-9. 내용정리 1. 반복자 반복자 카테고리와 기능 카테고리 기능 제공자 입력반복자 전방향 읽기 istream 출력반복자 전방향 쓰기 ostream, inserter 전방향반복자 전방향 읽기/쓰기 양방향반복자 전/역방향 읽기/쓰기 list, set, multiset, map, multimap 랜덤액세스반복자 랜덤액세스 deque, vector, string, array 전방향 반복자는 입력/출력반복자의 기능을 포함하고, 양방향 반복자는, 전방향반복자 + 역방향 지원, 랜덤 액세스 반복자는 양방향 반복자에, 랜덤 액세스까지 지원하는 반복자. * 반복자에서 증가/감소 연산자 사용시, 전위증가(감소)연산자를 사용하는 것이 더 유리하다. 후위증가(감소)연산자의 경우 임시객체를 생성하기에 상대적으로 더 느리다. 1) 보조반복자 .. 2014. 11. 7.
Chapter 2-6. 내용정리 1. 템플릿 - 임의의 데이터 타입을 위해 작성된 함수 or 클래스. 정확하게는 '정의'만 한 것이다. 예를 들어 다음과 같은 템플릿이 있다고 하자. template inline const T& max(const T& a, const T& b) { return a>b? a: b; } 위 정의 자체는 아무런 영향을 주지 않는다. 이 정의가 유효하려면, 사용이 되어야 '컴파일타임'에 실제 함수가 만들어진다. 예) int a = 10; int b = 10; max(a,b); // 위 템플릿에서 max(T, T). 여기서는 타입이 int이므로, max(int, int)함수가 생성된다. float c = 10.1f max(a,c); // 찾아봐도 max(T1, T2)는 존재하지 않는다. 컴파일러시 T가 모호하다고.. 2014. 10. 30.
할당자 사용자 지정 할당자 예 #include #include namespace MyLib{ template class MyAlloc{ public: //type정의 typedef T value_type; //원소의 타입 allocator와 동일 typedef T* pointer; //원소의 포인터에 대한 타입 typedef const T* const_pointer; //상수 포인터에 대한 타입 typedef T& reference; //원소의 레퍼런스에 대한 타입 typedef const T& const_reference; //원소의 상수레퍼런스에 대한 타입 typedef std::size_t size_type; //가장 큰 객체의 사이즈를 표기하기 위한 타입 typedef std::ptrdiff_t diff.. 2014. 10. 30.
728x90