예제로 배우는 C++ STL

예제로 배우는 C++ STL

$35.27
Description
이 책은 최신 C++20 표준을 기반으로, 표준 템플릿 라이브러리(STL)를 실무에서 효과적으로 활용하는 방법을 안내하는 실전 중심의 활용서입니다. 단순한 문법 설명을 넘어, 실제 개발 환경에서 마주할 수 있는 문제들을 다양한 레시피 형식의 예제를 통해 해결하며, STL의 구조와 작동 방식을 정확하고 체계적으로 설명합니다.

컨테이너, 알고리즘, 반복자, 람다 표현식, 유틸리티 클래스 등 STL의 핵심 요소는 물론, C++20에서 새롭게 도입된 기능까지 폭넓게 다루며, 동시성 프로그래밍, 메모리 관리, 문자열 처리와 같은 고급 주제도 함께 소개합니다. 이를 통해 기초를 다지고 싶은 입문자부터, 실무 적용에 고민이 많은 개발자, 모던 C++ 스타일을 익히고 싶은 숙련자까지 모두에게 실질적인 도움을 줄 수 있도록 구성되어 있습니다.

STL을 제대로 활용하고 싶지만 막막했던 분들, 최신 C++ 표준을 기반으로 더 나은 코드를 작성하고 싶은 분들에게 이 책은 가장 빠르고 확실한 길잡이가 되어줄 것입니다.
저자

빌와인먼

저자:빌와인먼
빌와인먼은1971년,16세의나이에첫번째컴퓨터를만든이후로기술분야에종사해왔다.1970년대초반부터C와C++로코딩을해왔으며,NASA,뱅크오브아메리카,제록스,IBM,미해군을포함한주요고객을위해시스템과애플리케이션을개발했다.전자공학자로서도활동하며보이저2호우주선,SAE의오디오앰프,알텍랜싱의사운드시스템개발에참여했다.1990년대중반부터는글쓰기와교육에집중해왔다.그의책과강의는HTML,SQL,CGI,Python,그리고물론C와C++을다룬다.온라인교육의초창기부터활동해온그는명확하고간결한글쓰기로LinkedInLearning에서꾸준히인기를끌고있다.

역자:유동환
책쓰는프로그래머.연세대학교정보대학원에서경영정보학을전공한후,LG전자CTO선행플랫폼개발실에서Chromium기반웹엔진을개발하고있다.C++20기반의STL책을번역하게된이유는오픈소스프로젝트인Chromium이C++20을공식적으로지원하기때문이다.집필한책으로는「코딩은처음이라with자바」(영진닷컴),「처음배우는플러터」,「RxJava프로그래밍」,「안드로이드를위한Gradle」(이상한빛미디어)이있다.번역한책으로는「클린코드의기술」(영진닷컴),「자바와JUnit을활용한실용주의단위테스트」(길벗),「자바로배우는핵심자료구조와알고리즘」(한빛미디어)등이있다.

목차

1장C++20의새로운기능
-예제코드
-새로운format라이브러리로텍스트서식화하기
-constexpr로컴파일타임에벡터와문자열사용하기
-서로다른타입의정수안전하게비교하기
-삼중비교를위해우주선연산자(⇔)사용하기
-헤더를사용하여기능시험매크로쉽게찾기
-컨셉과제약조건을통해더안전한템플릿만들기
-모듈을사용하여템플릿라이브러리의재컴파일피하기
-레인지를사용하여컨테이너에뷰생성하기

2장일반적인STL기능
-예제코드
-새로운span클래스를사용하여C배열을안전하게만들기
-구조적바인딩을사용하여다수의값반환하기
-if와switch문안에서변수초기화하기
-템플릿인수추론을사용하여단순성과명확성높이기
-ifconstexpr문을사용하여컴파일타임결정단순화하기

3장STL컨테이너
-STL컨테이너타입에대한빠른개요
-예제코드
-단일제거함수를사용하여컨테이너의값제거하기
-정렬되지않은벡터에서상수시간으로값제거하기
-벡터의요소에직접적이고안전하게접근하기
-벡터의요소들의정렬유지하기
-맵에요소를효율적으로삽입하기
-맵항목의키를효율적으로변경하기
-unordered_map에사용자정의타입의키사용하기
-set으로사용자입력을정렬하고필터링하기
-deque으로단순한RPN계산기만들기
-map으로단어빈도수계산기만들기
-벡터의벡터로긴문자열찾기
-multimap으로작업목록만들기

4장호환성있는반복자
-반복자가기본
-반복자카테고리
-반복자컨셉
-예제코드
-반복가능한레인지생성하기
-반복자를STL반복자특성과호환되게하기
-반복자어댑터를사용하여STL컨테이너채우기
-반복자로생성기만들기
-역방향반복자어댑터를사용하여역방향으로반복하기
-센티널을넣어길이를알수없는객체반복하기
-zip반복자어댑터만들기
-임의접근반복자만들기

5장람다표현식
-람다표현식
-클로저
-예제코드
-람다를사용하여범위가지정된재사용가능한코드만들기
-람다를알고리즘라이브러리의서술로사용하기
-std::function을다형적래퍼로사용하기
-재귀로람다접합하기
-서술을논리적결합으로합치기
-같은입력으로여러람다호출하기
-맵기반람다를사용하여점프테이블만들기

6장STL알고리즘
-예제코드
-한반복자에서다른반복자로복사하기
-컨테이너의요소들을문자열로합치기
-std::sort로컨테이너정렬하기
-std::transform으로컨테이너변경하기
-컨테이너에있는아이템찾기
-std::clamp로컨테이너에있는값한정하기
-std::sample로데이터집합의표본추출하기
-일련의데이터로부터순열생성하기
-정렬된컨테이너병합하기

7장문자열,스트림과서식화
-문자열서식화
-예제코드
-string_view클래스를경량문자열객체로사용하기
-문자열접합하기
-문자열변형하기
-C++20의format라이브러리로텍스트서식화하기
-문자열의공백제거하기
-사용자입력으로문자열읽기
-파일에있는단어수세기
-파일입력으로복합구조초기화하기
-char_traits로문자열클래스커스터마이징하기
-정규표현식으로문자열파싱하기

8장유틸리티클래스
-예제코드
-std::optional로선택적값관리하기
-타입안정성을위해std::any사용하기
-std::variant로서로다른타입저장하기
-std::chrono로시간이벤트다루기
-가변튜플을위한폴드표현식사용하기
-std::unique_ptr로할당된메모리관리하기
-std::shared_ptr로객체공유하기
-공유된객체를위한약한포인터사용하기
-관리객체의멤버공유하기
-난수엔진비교하기
-난수분포생성기비교하기

9장동시성과병렬성
-예제코드
-특정시간동안슬립하기
-동시성을위해std::thread사용하기
-동시성을위해std::async사용하기
-실행정책에따라STL알고리즘병렬로실행하기
-뮤텍스와잠금으로데이터안전하게공유하기
-std::atomic으로플래그와값공유하기
-std::call_once로스레드초기화하기
-std::condition_variable을사용하여생산자소비자문제해결하기
-다수의생산자와소비자구현하기

10장파일시스템사용하기
-예제코드
-path클래스를위한std::formatter특수화하기
-path를위한조작함수사용하기
-디렉터리의파일나열하기
-grep유틸리티로디렉터리와파일찾기
-regex와directory_iterator로파일명변경하기
-디스크사용량카운터만들기

11장생각해볼주제들
-예제코드
-검색제안을위한trie클래스만들기
-두벡터의오차합계산하기
-나만의split알고리즘만들기
-기존알고리즘을레버리지하는gather알고리즘만들기
-연속된공백제거하기
-숫자를단어로변환하기

출판사 서평

《예제로배우는C++STL》은최신C++20표준을기반으로,STL의핵심개념을가장실용적이고체계적인방식으로익힐수있도록구성된책입니다.

많은C++개발자들이STL의방대한기능과복잡한문법앞에서어려움을느낍니다.특히실무에어떻게적용해야할지,기존방식과어떤점이다른지고민하는분들이많습니다.이책은그런고민을해결하기위해기획되었습니다.

단순한문법설명을넘어,실제개발현장에서마주치는문제들을중심으로STL을어떻게쓰고,왜그렇게써야하는지를다양한예제로풀어냅니다.각각의예제는곧바로실무에적용가능한코드레시피로구성되어있어,읽는즉시활용할수있습니다.

또한STL을처음접하는독자부터기존C++방식에익숙한개발자,그리고최신표준에맞춰코드를현대화하고자하는숙련자까지모든수준의개발자에게실질적인도움을줄수있도록구성했습니다.

STL을제대로배우고싶은분,모던C++의사고방식을익히고싶은분,실전코드중심의학습을원하는분들에게강력히추천하는책입니다.
지금바로《예제로배우는C++STL》과함께STL의세계를정확하고빠르게마스터해보세요.