|
국내서로는 아이버 호튼의 "C++14 STL 철저 입문". 정도가 제대로 책이라 할 수 있다. 단, 이 책은 입문서라기 보다는 전문서에 가깝다. 따라서, STL에 대한 입문을 하고 나서, 이 책으로 오는 것이 좋아 보인다. (2) 모던 C++에서 STL이 대폭 증가했다. 모던 C++ 표준에서 STL이 차지하는 분량이 엄청나다. 그러나 STL을 배우는데 있어서, (모던 이전의) 고전 STL이 매우 중요하다. (3) STL에 입문하기 좋은 국내서(번역서 포함)는 거의 없다. 어떤 책은 너무 방대하고, 어떤 책은 불친절하다. 그에 비해 이 책은 나름 잘 써졌다. 단, STL이 그렇듯이, 이 책은 (고전) C++의 기본을 학습 한 후 시작해야 한다. 이 책이 어렵다면, C++의 기초를 좀 더 다져야 한다는 의미일게다. 그리고 자료구조, 알고리즘에 대한 입문 수준의 기초 학습은 되어 있어야 한다. (3.1) 일단, STL을 위해서는 C++에 대해 중급 수준의 기초 지식이 추가로 필요하다. STL 라이브러리 자체가 주로 사용하는 C++ 구문(syntax) 때문이다. 그런데 이 책은 시작부분에서 이를 잘 소개하고 나서, STL로 들어간다. 이 책이 제대로인 이유 중 하나이다. (2) STL은 사실상 중요 자료구조와 알고리즘을 C++에서는 어떻게 프로그래밍 할 것인가에 대한 것이다. 그러나 이 책은 라이브러리 소개 및 예제에 집중하고, 자료구조나 알고리즘 자체에 대한 이론적인 부분은 제대로 다루지 않는다. 이 책이 쓸데없이 장황해지지 않으니, 장점일 수도 있다. 대신에 자료구조, 알고리즘에 대한 입무 수준의 기초 지식은 많은 도움이 된다. (4)컨테이너를 print하는 부분을 라이브러리화 했다면 예제 코드가 간결해지고 새로 배우는 부분도 코드에 잘 드러나 보였을 것 같다. (5) main()에서 전부 수행하는 것보다 main() { .. v; init(v), test(v, 1), test(v, 2), .. } 방식으로, 즉 function에서 무언가 처리를 하게 해야, 정확한 parameter type 사용법이 드러난다. (6) 알고리즘 부분은 먼저 해결하고 싶은 문제를 예시하고, 이 경우 이런 함수로 쉽게 해결된다는 식으로 접근했어도 좋았을 것 같다. 예컨데 데이타 {1,4,6,2,4,7,5,3,2,4,7,9,6}에서 맨 처음 나오는 {2,4,7} 찾기.
|