stl 공부방법
글쓴이: canuyes / 작성시간: 화, 2013/04/30 - 12:09오전
안녕하세요?
공부중에 궁금한점이 생겨 잠들기 전에 질문 올립니다.
저는 c와 c++,자료구조,알고리즘을 공부한 학생입니다.
저는 지금 주로 c++을 사용합니다.
저는 요즘 제가 c++을 c처럼 사용중이라는 느낌을 지울수가 없습니다.
차근차근 생각해보니 저의 문제점은 stl을 전혀 사용할 줄 모른다는 것입니다.
저는 스택,큐 ,퀵소트 등의 자료구조를 직접 만들어 사용하고 있습니다.
Stl을 공부하면 이러한 고생을 할필요도 없고 좀더 c++스러운 코드를 짤 수 있다고 들었습니다.
따라서 stl을 공부하려고하는데 어디서 자료를 얻어야 할지 모르겟습니다.
추천서적이나 링크부탁드립니다.
Forums:
이 사이트에서 스택, 큐, 퀵소트 등의 stl을
이 사이트에서 스택, 큐, 퀵소트 등의 stl을 검색하셔서 상세히 알아보실 수 있어요. 예제도 같이 있어요.
http://www.cplusplus.com/reference/
참고하세요
http://www.gpgstudy.com/forum/viewtopic.php?p=46331
STL을 사용한다고 해서 고생을 안하는 것은
STL을 사용한다고 해서 고생을 안하는 것은 아니에요. STL(정확히 말하면 C++ Standard Library, STL이라는 용어는 deprecated되었습니다)은 공부할 것이 많습니다.
완전히 다 모르는 상태에서 필요한 것만 쓸 때의 찜찜함도 있고..
여담입니다만, STL은 container라이브러리 보다 일반화된 타입에 대한 generic algorithm과 iterator 설계가 핵심이라고 볼 수 있습니다.
(generic programming techniques, http://www.boost.org/community/generic_programming.html)
제가 쓰는 도구 중 c++ standard library 공부와 직/간접적으로 관련이 있는 내용 간략히 적어보겠습니다.
1. 컴파일러
clang++, g++4.7 (osx 에서 사용 c++11 표준 코드를 거의 다 컴파일) 참고) http://clang.llvm.org/cxx_status.html
vs2012
2. 3rd party library
boost-1.53,
google-test, google-mock(test)
3. vim plugin
clang_complete (vim 환경에서 vc처럼 자동 완성 기능을 제공합니다.)
TagBar, snipMate
4. 레퍼런스 사이트
http://en.cppreference.com/w/cpp 언어의 신규 개념에 대한 예제, standard library에 대한 예제도 좋습니다.
http://www.boost.org (boost library 공부용)
5. 책
SICP(Structure and Interpretation of Computer Programs, 컴퓨터 프로그의 구조와 해석)
=> 이 책에서 소개되는 함수형 프로그래밍의 개념이 최근 modern c++의 주된 특징인 함수형 언어 패러다임을 공부하는데 도움이 많이 됩니다.
한 번 더 말씀드리지만 STL을 쓰기 때문에 코드가 c++ 다와진다고 생각하지 마시고 왜 STL이 좋다고 하는지를 이해하려고 노력하는게 더 공부가 될거에요.
c++가 좋지만 c++ 사용법 공부에만 파묻히는 오류를 피하는 것도 잊지 마시고...
Life rushes on, we are distracted
궁금해서 질문글 쓸 시간에 KLDP에서 STL 책으로
궁금해서 질문글 쓸 시간에 KLDP에서 STL 책으로 검색만 해도 좋은 답글을 많이 읽을 수 있습니다.
답변감사합니다.
답변 감사드립니다.
일단 어허야님 답변도 감사드립니다. 검색 해보았습니다.
답글을 본 이후에 좀 더 저의 상황을 추가 설명하자면, 저는 지금 알고리즘 공부에 흥미가 생겨
알고리즘을 심화 학습하고 있습니다.
조금 더 심화된 학습을 하다보니
이제 배열의 기본적인 알고리즘, 자료구조등은 그냥 통째로 stl로 만들어버리는 일이 많아졌습니다.
따라서, 저는 알고리즘에서 사용되는 stl을 레퍼런스 형식으로 공부하면서 하나하나 배워가기로 정했습니다.
혹시나 조언 해주실 것이 더 있으시다면 답글 달아주십시오.
댓글 달기