이미 소장하고 있다면 판매해 보세요.
|
1부 기초
1 STL 구성 요소 컨테이너(container) 반복자(iterator) 함수자(functor) 2 컨테이너 선택 3 프로젝트 생성 4 VC++ 6.0에서의 GDI+ 설치 2부 알고리즘 1 추가 알고리즘 push_front 멤버 함수 push_back 멤버 함수 assign 멤버 함수 insert 멤버 함수 fill 알고리즘 copy 알고리즘 remove_copy 알고리즘 replace_copy 알고리즘 reverse_copy, rotate_copy 알고리즘 2 삭제 알고리즘 pop_front 멤버 함수 pop_back 멤버 함수 clear 멤버 함수 erase 멤버 함수 remove 멤버 함수 remove 알고리즘 unique 멤버 함수 unique 알고리즘 3 반복 알고리즘 for_each 알고리즘 generate 알고리즘 transform 알고리즘 4 정렬 알고리즘 random_shuffle 알고리즘 sort 알고리즘 stable_sort 알고리즘 partial_sort 알고리즘 nth_element 알고리즘 partition 알고리즘 5 검색 알고리즘 find 알고리즘 search 알고리즘 adjacent_find 알고리즘 count 알고리즘 min_element, max_element 알고리즘 binary_search 알고리즘 includes 알고리즘 3부 응용 프로그램 1 단어장 개요 요구사항 분석 실행 STL 핵심알고리즘 프로그램 제작 코드 전문 2 따라하기 개요 요구사항 분석 실행 STL 핵심 알고리즘 프로그램 제작 코드 전문 3 오목 개요 요구사항 분석 실행 STL 핵심 알고리즘 프로그램 제작 코드 전문 4 타자 게임 개요 요구사항 분석 실행 STL 핵심 알고리즘 프로그램 제작 코드 전문 5 회원 관리 개요 요구사항 분석 실행 STL 핵심 알고리즘 프로그램 제작 코드 전문 6 고스톱 개요 요구사항 분석 실행 STL 모듈 구성도 핵심 알고리즘 프로그램 제작 코드 전문 찾아보기 참고도서 |
|
1. 너무 쉬운 STL
처음 배우는 것 중에 어렵지 않은 것이 있겠습니까? 있었습니다. [TCP/IP 소켓 프로그래밍]을 집필하면서, STL을 사용했지만 잘 몰랐던 시기라고 생각됩니다. 당시 좀 더 좋은 참고서가 있었으면, 책이 더 좋아졌을 것이 분명합니다. 예전에는 없었지만, 지금은 있습니다. 물론 이 책은 아니고 [부록]에 있습니다. 2. 조금 어려운 함수자 STL에서 가장 어려웠던 부분은 함수자였습니다. 왜 그렇게 헛갈렸는지 모르겠습니다. 동작하는 코드를 만들 수는 있었는데, 왜 동작하는지에 대한 설명은 분명하지가 못했습니다. 함수자를 이해하지 못해도, 함수자가 살아가는 단순한 규칙만으로도 사용에는 지장이 없습니다. 이 책을 통해 최소한의 사용법만이라도 숙지하셨으면 합니다. 3. STL은 숲입니다. 자료구조를 포장하고 있는 컨테이너가 단편적인 나무일 수는 없습니다. 나무는 단순히 숲에 있는 단편적인 코드 중의 하나일 뿐입니다. STL을 통해 숲이라는 프레임웍(틀)을 구성하는 방법을 배우시길 바랍니다. 전체 설계에 있어서 컨테이너의 비중이 얼마나 중요한지 배우셨으면 합니다. 4. STL 실례 STL을 구성하는 많은 콤포넌트들. 이들에 대한 다양한 사용법을 보여드리고 싶었습니다. 개론서에서 보여지는 예제들로는, 실제 작업에서 벌어지는 내용을 처리하지 못합니다. 직접 그러한 사례를 접해 보면 별 것 아니란 것을 알 수 있지만, 경험이 없는 이에게는 높은 벽이 됩니다. 수준 높은 다양한 예제를 통해 많은 경험을 쌓길 바랍니다. 5. 다양한 접근 문제를 해결하는 방식에는 여러 가지가 있습니다. 학교에서 집에 가는 길도 여러 가지인데, 그보다 훨씬 복잡한 문제라면 정말 길이 다양할 것입니다. 문제를 해결하기 위해, 다양한 STL적인 접근법을 소개합니다. 여섯 개의 응용프로그램에서 만나게 되는 상황들에 대해 가능하면 다양한 방법으로 문제를 해결했습니다. 덕분에 쓸데없는 코드도 늘었고, 굳이 저렇게 코딩해야 하는지에 대한 의문도 늘었겠지만, 여러분은 좀 더 다양한 코드를 접하실 수 있게 되었습니다. 6. 프로젝트 완성 책에 실린 응용프로그램에 문제가 있다고는 생각지 않습니다. 다만 많은 사람들이 생각하는 요구조건들을 모두 수용하지는 못했습니다. 일부 부족한 부분들은 저의 게으름과 이 책을 보는 분에 대한 숙제로 남겨 두었습니다. 고스톱의 경우 책에서는 맞고이지만, 여러분은 세 명이서 하는 고스톱으로 전환해 보는 것이 중요합니다. 책에서 제공하는 프로젝트 제작 순서는 잘못되지 않는 무조건적인 성공을 의미합니다. 실패로부터 나오지 않은 프로젝트가 어떻게 있을 수 있습니까? 저 또한 많은 실패를 했지만, 아시다시피 책에 실을 수는 없었습니다. 부디 여러분의 프로젝트를 수행해서 실패를 맞보시기 바랍니다. 7. 스터디 비트 교육센터가 잘 하고 있는 것이 스터디입니다. 다른 것들도 좋겠지만, 여러 교육센터를 경험한 뒤에는 오직 스터디만이 차별화 요소라고 생각했습니다. 결론없는 토론, 얘기하고 보자는 식의 준비 미흡, 성의없는 참여 등은 스터디를 가로막는 대표적인 요소들입니다. 이 책이 스터디에 사용되었으면 합니다. 몇 명이 모여 코드를 직접 입력하면서 문제가 되거나 수정되었으면 하는 내용들에 대해 토론했으면 좋겠습니다. 제 코드보다 나은 코드가 나오면 좋겠습니다. 8. 굳은살 일을 열심히 하면 손에 굳은살이 박힙니다. 타이핑을 열심히 하면 어떤 일이 일어날까요? 굳은살은 아니겠지만, 로션이나 크림으로는 치유할 수 없는 거친 피부를 갖게 됩니다. 여러분의 목표가 능력있는 개발자라면, 손가락이 예쁘거나 윤기가 자르르 흐를 필요는 없습니다. CD를 통해 너무 쉽게 코드에 접근합니다. CD 대신 코드 전문을 넣었습니다. 책은 두꺼워졌지만, 프로젝트를 제작하는 과정에서 발생할 수 있는 저의 실수나 여러분의 실수를 보완할 수 있습니다. 혹시라도 코드 전문이 마음에 안 드시는 분은 이 책을 사지 마십시오. 이 책을 사는 분은, 반드시 직접 코딩을 해야겠다는 바른 자세를 가져야 합니다. |