목록프로그래밍(c++)/Effective STL(C++) (7)
정체불명의 모모
오오... 이제 거의 끝이 보입니다! 앞으로 한 챕터만 끝내면 STL 책은 이걸로 끝~~ 물론, 이 내용으로 마스터 될게 아니니깐 더 공부해야 겠죠 ㅎㅎ 그래도 책한권을 또 끝낸다니 뿌듯하네요~ 이번 장도 어렵지만 열심히 알아 봅시다. 이번장의 주요 내용은 함수자 입니다. 그럼, Let's go~! ㅁ 함수자란? : 함수 객체(function object)라고도 부르며, 0개 이상의 인자를 받아서 알고리즘의 기본 동작을 변형하거나 확장 시켜주는 객체를 얘기합니다. 함수자 클래스는 값으로 전달되도록(pass-by-value) 설계하자 : STL에서 함수 객체는 함수 사이를 오갈 때 값으로 전달(즉, 복사) 됩니다. ▷ for_each 알고리즘을 보면 함수 객체를 값으로 받아들이고 값으로 반환 한다. tem..
이번 장은 '알고리즘'입니다. 언제나 어려운 알고리즘... 이번 장의 목적은 2가지 입니다. 1. 편하게 해줄 알고리즘 소개 2. 알고리즘을 사용하면서 자주 만나게 되는 문제를 피하는 방법 위 목적을 달성하기 위해 정리를 할 겁니다. 그럼... Start! 알고리즘의 데이터 기록 범위는 충분히 크게 잡자 : 이 항목에서는 객체 삽입시 일어나는 문제에 대해 해결책을 제시 해주고 있습니다. 문제 : 객체를 컨테이너에 삽입(insert) 할때 아무런 객체가 없는 경우 ▽ 예제 코드 ( transform함수를 이용하여 values객체에 있는 값을 * 10 한 값을 results에 기록하기) ▽ 결과 왜 저런 에러가 발생했을까?? 그 이유는 현재 results 컨테이너(results.end( )) 안에는 아무런 ..
이번 장은 '반복자'에 대해 알아보는 시간입니다. 총 4가지의 반복자에 대해 알아보져! 그리고 컨테이너와 그 컨테이너의 멤버 함수의 관계도 알아 볼겁니다. 그럼... Start! const_iterator나 reverse_iterator, const_reverse_iterator도 좋지만 역시 쓸만한 것은 iterator이다. 위의 내용을 파악하기 전에 iterator 종류에 대해 알아 보자 iterator의 종류(T-> template) iterator T* const_iterator const T* reverse_iterator 역방향 T* const_reverse_iterator 역방향 const T* Iterator에서의 const 키워드의 의미 : STL 반복자(iterator)는 포인터를 본떠..
이번 장에서 중점으로 봐야하는 내용을 보여드리겠습니다. 1. 상등 관계 와 동등 관계의 차이 파악 2. 비교 함수를 사용할 때 잊지 말아야 할 제약 사항 3. 포인터의 연관 컨테이너에 대해 커스텀 비교 함수를 쓸 때 좋은 점 4. key의 상수성질에 대한 실체 5. 연관 컨테이너의 효율을 향상 시키는 법 1. 상등 관계 와 동등 관계의 차이 파악 - 상등성 : operator == - 동등성 : operator