Effective STL (Scott Meyers, 2006) 독후감
처음에는 라이브러리를 배우게 되고 이후에는 어떻게 하면 효율적으로 사용할 수 있는지 배우게 된다. 이 세상에 효율성을 따지지 않고 맘 편하게 쓸 수 있는 라이브러리가 과연 있을까? 그런 라이브러리가 있으면 얼마나 좋겠냐 만은 그런 거 없다. 효율적으로 쓰려면 어떻게 구현되어 있는지 알아야 한다. 특히 범용적으로 사용할 수 있게 설계된 STL은 더하다. 다른 라이브러리와 비교해 알아야 할 게 많아서 더 미움을 받는지도 모르겠다. 경험이나 소스 분석을 통해서 배우게 되는 과정을 다이렉트로 배울 수 있는 고마운 책이다.
예전에 본 책인데, 최근에 다시 한번 펼쳐보게 됐다. 그냥 읽어보는 것과 내 것으로 만드는 것은 역시 다르긴 다르다. 이번에는 읽었지만 지나치고 사용하지 않았던 것들과 유용한 데 사용하지 않은 것들을 다시 한번 정리해봤다. 역시 읽는 것보다 정리하는데 시간이 더 들었다.
- #stl istreambuf_iterator, ostreambuf_iterator : 서식화(formatted)하지 않는 입출력
- #stl 상등 관계(equality)와 동등 관계(equivalence)의 차이 파악
- #stl 반복자 어댑터(Iterator Adaptors) - inserter(), back_inserter(), front_inserter()
- #stl 정렬된 컨테이너의 검색 알고리즘 : upper_bound(), lower_bound(), equal_range(), binary_search()
- #stl 함수 어댑터(function adaptor, adapter) - not1, bind1st, ptr_fun, mem_fun
- #stl VS 2005의 std::string 구현(딩컴웨어 STL)
- #stl copy_if 알고리즘 구현
- #stl 정렬 알고리즘(sort, stable_sort, partial_sort, nth_element)
- #stl auto_ptr - 조심히 사용해야 하는 스마트 포인터
- #stl accumulate - 수치 알고리즘
이게 전부가 아니라 빙산의 일각일 뿐이라는 게 문제다. 뭐~ 평생 배우는 수밖에 없지.