C++ 프로그래머가 알아야 할, C++ 표준 라이브러리
C++ 표준 라이브러리에 대해 반드시 알아야 할 사항을 간결하게 설명했다. 어떤 라이브러리가 있는지 소개하고, 어떻게 사용하는지, 어떤 경우에 사용하면 좋은지, 성능은 어떤지를 배운다. 사용법은 물론, 사용할 때 주의할 점과 팁이 곳곳에 제시되어 있다. 이 책은 C++에 익숙한 개발자를 위한 것으로, 만약 C++에 익숙하지 않다면 C++의 기본을 학습한 뒤에 이 책을 펼치기 바란다. 그러면 이 책의 내용을 훨씬 더 잘 이해하고, 잘 활용할 수 있을 것이다. 또한, 이론과 실습을 결합하여 최대한 활용할 수 있도록 코드 예제를 많이 제시했다.
C++의 높은 허들 넘기! 11부터 17까지 모던 C++ 라이브러리가 도와드립니다.
이 책은 C++17 기반의 C++ 표준 라이브러리를 다룬 레퍼런스 북으로, C++ 프로그래머가 C++ 표준 라이브러리에 대해 알아야 할 사항을 간결하게 핵심 위주로 알려드립니다. 어떤 라이브러리가 있는지 소개하고, 어떻게 사용하는지, 어떤 경우에 사용하면 좋은지를 다룹니다.
- 각 기능의 사용법과 성능
- 각 기능을 사용할 때 주의점과 팁
에 주목하고, 이론과 실습을 결합한 코드 예제를 제시하여 이해를 높였습니다.
이 책에서 다루는 내용
유틸리티
컨테이너 인터페이스
순차 컨테이너
연관 컨테이너
컨테이너 어댑터
반복자
콜러블
알고리즘
수학
스트링
스트링 뷰
정규 표현식
입력 스트림과 출력 스트림
파일 시스템 라이브러리
멀티스레딩
1장 표준 라이브러리
__1.1 역사
__1.2 개요
____1.2.1 유틸리티
____1.2.2 표준 템플릿 라이브러리
____1.2.3 수치 연산
____1.2.4 텍스트 처리
____1.2.5 입력과 출력
____1.2.6 멀티스레딩
__1.3 라이브러리 활용
____1.3.1 헤더 파일 인클루드하기
____1.3.2 네임스페이스 지정하기
____1.3.3 실행 파일 생성하기
2장 유틸리티
__2.1 유용한 함수들
____2.1.1 std::min, std::max, std::minmax
____2.1.2 std::move
____2.1.3 std::forward
____2.1.4 std::swap
__2.2 함수 어댑터
____2.2.1 std::bind
____2.2.2 std::function
__2.3 페어
____2.3.1 std::make_pair
__2.4 튜플
____2.4.1 std::make_tuple
____2.4.2 std::tie와 std::ignore
__2.5 레퍼런스 래퍼
____2.5.1 std::ref와 std::cref
__2.6 스마트 포인터
____2.6.1 std::unique_ptr
____2.6.2 std::shared_ptr
____2.6.3 std::weak_ptr
____2.6.4 순환 참조
__2.7 타입 트레이트
____2.7.1 타입 정보 검사
____2.7.2 기본 타입 카테고리
____2.7.3 복합 타입 카테고리
____2.7.4 타입 속성
____2.7.5 타입 비교
____2.7.6 타입 수정
__2.8 시간 라이브러리
____2.8.1 시점
____2.8.2 기간
____2.8.3 클럭
__2.9 std::any, std::optional, std::variant
____2.9.1 std::any
____2.9.2 std::optional
____2.9.3 std::variant
3장 컨테이너 인터페이스
__3.1 생성과 삭제
__3.2 크기
__3.3 접근
__3.4 대입과 맞바꾸기
__3.5 비교
4장 순차 컨테이너
__4.1 배열
__4.2 벡터
____4.2.1 크기 vs. 용량
__4.3 덱
__4.4 리스트
__4.5 포워드 리스트
5장 연관 컨테이너
__5.1 개요
____5.1.1 원소의 추가와 삭제
__5.2 정렬 연관 컨테이너
____5.2.1 개요
____5.2.2 키와 값
____5.2.3 비교 기준
____5.2.4 탐색 함수
____5.2.5 std::map
__5.3 비정렬 연관 컨테이너
____5.3.1 개요
____5.3.2 키와 값
____5.3.3 성능
____5.3.4 해시 함수
____5.3.5 세부 사항
6장 컨테이너 어댑터
__6.1 스택
__6.2 큐
__6.3 우선순위 큐
7장 반복자
__7.1 카테고리
__7.2 반복자 만들기
__7.3 유용한 함수
__7.4 어댑터
____7.4.1 추가 반복자
____7.4.2 스트림 반복자
8장 콜러블
__8.1 함수
__8.2 함수 오브젝트
____8.2.1 미리 정의된 함수 오브젝트
__8.3 람다 함수
9장 알고리즘
__9.1 사용법
__9.2 반복자
__9.3 순차, 병렬 실행 또는 벡터화를 적용한 병렬 실행
____9.3.1 실행 정책
____9.3.2 병렬 실행을 지원하는 알고리즘
__9.4 for_each
__9.5 원소를 수정하지 않는 알고리즘
____9.5.1 원소 탐색
____9.5.2 원소 개수 세기
____9.5.3 범위에 대한 조건 검사하기
____9.5.4 범위 비교
____9.5.5 범위 탐색하기
__9.6 원소를 수정하는 알고리즘
____9.6.1 원소와 범위 복제하기
____9.6.2 원소와 범위 교체하기
____9.6.3 원소와 범위 제거하기
____9.6.4 범위 채우고 생성하기
____9.6.5 범위 옮기기
____9.6.6 범위 맞바꾸기
____9.6.7 범위 변환하기
____9.6.8 범위 순서 바꾸기
____9.6.9 범위 회전시키기
____9.6.10 범위 무작위로 섞기
____9.6.11 중복 제거하기
__9.7 분할
__9.8 정렬
__9.9 이진 탐색
__9.10 합병 연산
__9.11 힙
__9.12 최대 최소
__9.13 순열
__9.14 수치 알고리즘
__9.15 C++17부터 추가된 알고리즘
__9.16 C++20부터 추가된 알고리즘
10장 수학
__10.1 무작위수
____10.1.1 무작위수 생성기
____10.1.2 무작위수 분포
__10.2 C에서 물려받은 수학 함수
11장 스트링
__11.1 생성과 삭제
__11.2 C++ 스트링과 C 스트링 간 변환
__11.3 크기 vs. 용량
__11.4 비교
__11.5 스트링 결합
__11.6 원소 접근
__11.7 입력과 출력
__11.8 탐색
__11.9 수정 연산
__11.10 숫자 변환
12장 스트링 뷰
__12.1 생성과 초기화
__12.2 비수정 연산
__12.3 수정 연산
13장 정규 표현식
__13.1 문자 타입
__13.2 정규 표현식 오브젝트
__13.3 검색 결과 - match_results
____13.3.1 std::sub_match
__13.4 매치
__13.5 검색
__13.6 교체
__13.7 포맷
__13.8 반복 검색
____13.8.1 std::regex_iterator
____13.8.2 std::regex_token_iterator
14장 입력 스트림과 출력 스트림
__14.1 계층 구조
__14.2 입력 함수와 출력 함수
____14.2.1 입력
____14.2.2 포맷 비지정 입력
____14.2.3 출력
____14.2.4 포맷 지정자
__14.3 스트림
____14.3.1 스트링 스트림
____14.3.2 파일 스트림
____14.3.3 스트림 상태
__14.4 사용자 정의 데이터 타입
15장 파일 시스템 라이브러리
__15.1 클래스
____15.1.1 파일의 접근 권한 조작하기
__15.2 비멤버 함수
____15.2.1 파일을 마지막으로 쓴 시각을 읽거나 설정하기
____15.2.2 파일 시스템 공간 정보 알아내기
__15.3 파일 타입
____15.3.1 파일 타입 알아내기
16장 멀티스레딩
__16.1 메모리 모델
__16.2 어토믹 데이터 타입
__16.3 스레드
____16.3.1 생성
____16.3.2 수명
____16.3.3 인수
____16.3.4 연산
__16.4 공유 변수
____16.4.1 데이터 경쟁
____16.4.2 뮤텍스
____16.4.3 데드락
____16.4.4 락
____16.4.5 std::shared_lock
____16.4.6 스레드에 안전한 초기화
__16.5 스레드 로컬 데이터
__16.6 상태 변수
__16.7 태스크
____16.7.1 스레드 vs. 태스크
____16.7.2 std::async
____16.7.3 std::packaged_task
____16.7.4 std::promise와 std::future
찾아보기
ㆍ지은이 라이너 그림
ㆍ옮긴이 남기혁
독자의견 남기기