도서상세보기

도서명 고성능을 위한 언어 C++ (이론과 C++17, 메모리 관리, 동시성, STL 알고리즘 모범 사례
저자 빅터 세르,비요른 앤드리스트
출판사 에이콘
출판일 2020-01-31
정가 35,000원
ISBN 9791161753911
수량
1장. C++의 간단한 소개
C++의 사용 이유
비용이 들지 않는 추상화
이식성
견고성
C++의 현재
이 책의 목표
독자에게 기대하는 지식
다른 언어와 C++의 비교
언어의 성능 경쟁
성능과 관련 없는 C++ 언어의 기능
객체 소유와 C++의 가비지 컬렉션
C++ 참조를 사용한 널 객체 예방
C++의 단점
클래스 인터페이스와 예외 처리
엄격한 클래스 인터페이스
오류 처리와 자원 관리
이 책에서 사용한 라이브러리
요약

2장. 최신 C++ 개념
auto 키워드를 사용한 자동 타입 추론
함수 서명에서 auto 사용
변수에서 auto 사용
람다 함수
C++ 람다 함수의 기본 구문
캡처 블록
람다와 std::function
다형성 람다
포인터에 대한 상수 전파
이동 의미론 설명
복사 생성, 교환, 이동
자원의 획득과 3의 법칙
이동 의미론 소개
명명된 변수와 오른쪽 값
기본 이동 의미론과 영의 법칙
std::optional로 옵션 값 표현
옵션 반환값
옵션 멤버 변수
정렬과 std::optional의 비교
동적인 값을 std::any로 표현
std::any의 성능
요약

3장. 성능 측정
점근적 복잡도와 빅 O 표기법
증가율
분할 상환 시간 복잡도
측정 대상
성능의 속성
성능 테스트: 모범 사례
코드의 이해와 핵심 지점
프로파일러
요약

4장. 데이터 구조
컴퓨터 메모리의 속성
STL 컨테이너
시퀀스 컨테이너
연관 컨테이너
정렬된 집합과 맵
비정렬 집합과 맵
컨테이너 어댑터
평행 배열
요약

5장. 반복자
반복자 개념
반복자 분류
포인터와 유사한 문법
생성기로서의 반복자
반복자 특성
실용적인 예제: 범위 내의 부동소수점 포인트 값 반복 연산
요약

6장. STL 알고리즘
블록 구성을 위한 STL 알고리즘
STL 알고리즘의 개념
STL 알고리즘과 직접 만든 for 반복문의 비교
STL과 범위 라이브러리의 미래
STL 반복자의 제
이 책에서 다루는 내용
■ 자신이 만든 코드를 향상시킬 수 있는 흥미로운 도구 사용법
■ 코드를 최적화하기 위한 성능 병목지점을 찾아내는 방법
■ GPU 연산을 활용하는 애플리케이션 개발
■ 동시 프로그래밍의 장점 활용
■ 예외 처리를 통해 애플리케이션 오류에서 보호하는 코드 제작
■ STL 컨테이너와 알고리즘의 효율적인 활용
■ 부스트 컨테이너 확장 도구
■ 사용자 정의 메모리 할당자를 사용한 효율적인 메모리 관리

이 책의 대상 독자
독자가 C++와 컴퓨터 구조의 기초 지식과 자신의 기술을 향상시키는 데 타고난 흥미를 갖고 있다고 기대한다. 바라건대 이 책을 마치고 나면 성능, 구조 측면에서 자신의 C++ 애플리케이션을 향상시킬 수 있는 몇 가지 방법을 얻을 수 있을 것이다. “아, 그렇구나!”’라고 생각하는 순간을 갖기 바란다.

이 책의 구성
1장, ‘C++의 간단한 소개’에서는 무비용 추상화, 값 의미 체계, 상수 수정, 명시적 소유, 오류 처리 등과 같은 일부 중요한 특징을 소개한다. C++의 단점도 알아본다.
2장, ‘최신 C++ 개념’에서는 auto를 사용한 자동 타입 추정과 람다 함수, 이동 의미 체계, std::optional, std::any 등을 개괄적으로 다룬다.
3장, ‘성능 측정’에서는 점근적 복합성, 빅 O 표시법, 실용적 성능 테스트와 코드를 프로파일해 문제 지점을 찾는 방법을 설명한다.
4장, ‘데이터 구조’에서는 데이터에 빠르게 접근할 수 있도록 구성하는 작업의 중요성을 보여준다. std::vector, std::list, std::unorderedmap, std::priorityqueue와 같은 STL 컨테이너를 소개하고, 마지막으로 평행 배열의 반복 연산 방법을 알아본다.
5장, ‘반복자’에서는 반복 연산자의 개념을 깊이 있게 살펴보고, 반복 연산자가 단순히 컨테이너에 객체를 참조하는 것을 뛰어 넘는 방법을 보여준다.
6장, ‘STL 알고리즘’에서는 STL 알고리즘의 명백한 장점과 아주 명