C++ 14 STL 철저 입문

고객평점
저자아이버 호튼
출판사항길벗, 발행일:2016/12/22
형태사항p.652 B5판:24
매장위치컴퓨터부(B2) , 재고문의 : 051-816-9500
ISBN9791160500615 [소득공제]
판매가격 36,000원   32,400원  (인터넷할인가:10%)
포인트 1,620점
배송비결제주문시 결제
절판도서 및 품절도서 입니다 매장으로 문의바랍니다.
재고 0인 도서는 수량 부족으로 발송지연이 예상되니 주문 전 문의바랍니다.

책 소개

▣ 작가 소개

저자 : 아이버 호튼
수학자로 졸업했지만, 적게 일해도 많이 벌 수 있다는 전망 때문에 정보 기술에 이끌렸다. 아쉽게도 현실은 많은 일을 해야 했고 보상은 그럭저럭 이지만, 지금까지 컴퓨터로 일하고 있다. 프로그래밍, 시스템 디자인, 컨설턴트, 상당히 복잡한 프로젝트의 관리 같은 다양한 일에 참여했다. 오랜 기간 공학 설계와 제조 공정 분야에서 시스템을 설계했었다. 과거에는 다양한 언어로 응용프로그램을 개발했지만, 지금은 과학자나 엔지니어를 대상으로 강의하는 데 많은 시간을 쓰고 있다. 현재까지 C, C++, 자바에 관한 책을 집필했다. 책을 집필하거나 컨설팅을 하지 않을 때는 낚시와 여행을 즐기며 즐겁게 생활하고 있다.

역자 : 조현태
시간이 있을 때면 다양한 물건을 만들어보거나 시도해보는 것을 좋아한다. 지금은 아두이노로 관리되는 베란다 텃밭을 만드는 중이다.

▣ 주요 목차

1장 표준 템플릿 라이브러리
__1.1 기본 아이디어
__1.2 템플릿
__1.3 컨테이너
__1.4 반복자
____1.4.1 반복자 얻기
____1.4.2 반복자 카테고리
____1.4.3 스트림 반복자
____1.4.4 반복자 어댑터
______1.4.4.1 역방향 반복자
______1.4.4.2 삽입 반복자
______1.4.4.3 이동 반복자
__1.5 반복자에 쓰이는 연산
__1.6 스마트 포인터
____1.6.1 unique_ptr〈T〉 포인터 사용하기
______1.6.1.1 unique_ptr〈T〉 객체를 초기화하기
______1.6.1.2 unique_ptr〈T〉 객체를 비교하고 검사하기
____1.6.2 shared_ptr〈T〉 객체 사용하기
______1.6.2.1 shared_ptr〈T〉 객체 초기화하기
______1.6.2.2 shared_ptr〈T〉 객체를 비교하고 검사하기
____1.6.3 weak_ptr〈T〉 포인터
__1.7 알고리즘
__1.8 함수를 인수로 전달하기
____1.8.1 함수 객체
____1.8.2 람다 표현식
______1.8.2.1 람다 표현식에 이름 지정하기
______1.8.2.2 람다 표현식을 함수에 전달하기
______1.8.2.3 캡처 절
__1.9 요약
__1.10 연습문제

2장 순차 컨테이너
__2.1 순차 컨테이너
____2.1.1 컨테이너의 공통 함수 멤버
__2.2 array〈T,N〉 컨테이너 사용하기
____2.2.1 원소에 접근하기
____2.2.2 array 컨테이너에서 반복자 사용하기
____2.2.3 array 컨테이너의 비교
__2.3 vector〈T〉 컨테이너 사용하기
____2.3.1 vector〈T〉 컨테이너 생성하기
____2.3.2 벡터의 용량과 크기
____2.3.3 원소에 접근하기
____2.3.4 vector 컨테이너에서 반복자 사용하기
____2.3.5 벡터 컨테이너에 새 원소 추가하기
______2.3.5.1 원소를 추가하기
______2.3.5.2 원소를 삽입하기
____2.3.6 원소를 삭제하기
____2.3.7 vector〈bool〉 컨테이너
__2.4 deque〈T〉 컨테이너 사용하기
____2.4.1 deque 컨테이너 생성하기
____2.4.2 원소에 접근하기
____2.4.3 원소를 추가하고 제거하기
____2.4.4 deque 컨테이너의 내용을 대체하기
__2.5 list〈T〉 컨테이너 사용하기
____2.5.1 list 컨테이너 생성하기
____2.5.2 원소 추가하기
____2.5.3 원소를 제거하기
____2.5.4 원소를 정렬하고 병합하기
____2.5.5 원소에 접근하기
__2.6 forward_list〈T〉 컨테이너 사용하기
__2.7 반복자를 직접 정의하기
____2.7.1 STL 반복자 요구사항
______2.7.1.1 STL 반복자 사용의 문제
______2.7.2 STL 접근 방식
______2.7.2.1 반복자 템플릿 사용하기
______2.7.2.2 STL 반복자 멤버 함수 요구사항
__2.8 요약
__2.9 연습문제

3장 컨테이너 어댑터
__3.1 컨테이너 어댑터는 무엇인가?
__3.2 stack〈T〉 컨테이너 어댑터 생성과 사용하기
____3.2.1 스택 연산
__3.3 queue〈T〉 컨테이너 어댑터 생성과 사용하기
____3.3.1 큐 연산
____3.3.2 queue 컨테이너의 실제 사용
__3.4 priority_queue〈T〉 컨테이너 어댑터 사용하기
____3.4.1 우선순위 큐를 생성하기
____3.4.2 우선순위 큐를 위한 연산
__3.5 힙
____3.5.1 힙 생성하기
____3.5.2 힙 연산
__3.6 포인터를 컨테이너에 저장하기
____3.6.1 순차열 컨테이너에 포인터 저장하기
____3.6.2 우선순위 큐에 포인터 저장하기
____3.6.3 포인터 힙
____3.6.4 기반 클래스 포인터를 담은 컨테이너
____3.6.5 알고리즘을 포인터 범위에 적용하기
__3.7 요약
__3.8 연습문제

4장 map 컨테이너
__4.1 맵 컨테이너 소개
__4.2 map 컨테이너 사용하기
____4.2.1 map 컨테이너 생성하기
____4.2.2 맵에 원소 삽입하기
____4.2.3 map 원소를 내부에서 생성하기
____4.2.4 map의 원소들에 접근하기
____4.2.5 원소 삭제하기
__4.3 pair〈〉와 tuple〈〉 객체 사용하기
____4.3.1 pair 연산
____4.3.2 tuple 연산
____4.3.3 tuple과 pair를 함께 사용
__4.4 multimap 컨테이너 사용하기
__4.5 비교 함수를 바꾸기
____4.5.1 greater〈T〉 객체 사용하기
____4.5.2 원소를 비교하는 함수 객체 정의하기
__4.6 해싱
____4.6.1 해시 값을 생성하는 함수
__4.7 unordered_map 컨테이너 사용하기
____4.7.1 unordered_map 컨테이너 생성과 관리하기
____4.7.2 버킷 개수 조정하기
____4.7.3 원소 삽입하기
____4.7.4 원소에 접근하기
____4.7.5 원소 제거하기
____4.7.6 버킷에 접근하기
__4.8 unordered_multimap 컨테이너 사용하기
__4.9 요약
__4.10 연습문제

5장 set으로 작업하기
__5.1 set 컨테이너 이해하기
__5.2 set〈T〉 컨테이너 사용하기
____5.2.1 원소 추가와 제거
____5.2.2 원소에 접근하기
____5.2.3 set으로 작업하기
______5.2.3.1 학생 생성하기
______5.2.3.2 과목을 수강하는 학생들을 set으로 생성하기
______5.2.3.3 과목과 코스를 생성하기
______5.2.3.4 코스에 학생을 등록하기
______5.2.3.5 학생들의 수강 과목 검사하기
______5.2.3.6 코스를 출력하기
______5.2.3.7 전체 프로그램
____5.2.4 set 반복자
____5.2.5 set 컨테이너에 포인터 저장하기
______5.2.5.1 set 컨테이너에 스마트 포인터를 저장하는 예제
______5.2.5.2 shared_ptr 원소들의 벡터를 생성하기
______5.2.5.3 weak_ptr가 참조하는 객체를 출력하기
______5.2.5.4 map 컨테이너에서 스마트 포인터를 키로 사용하기
______5.2.5.5 스마트 포인터를 비교할 때의 문제점
__5.3 multiset〈T〉 컨테이너 사용하기
____5.3.1 포인터를 파생 클래스 객체에 저장하기
______5.3.1.1 컨테이너를 정의하기
______5.3.1.2 예제에 사용할 main() 정의하기
__5.4 unordered_set〈T〉 컨테이너 사용하기
____5.4.1 원소 추가하기
____5.4.2 원소 가져오기
____5.4.3 원소 삭제하기
____5.4.4 버킷 리스트를 보여주기
__5.5 unordered_multiset〈T〉 컨테이너 사용하기
__5.6 set 연산
____5.6.1 set_union() 알고리즘
____5.6.2 set_intersection() 알고리즘
____5.6.3 set_difference() 알고리즘
____5.6.4 set_symmetric_difference() 알고리즘
____5.6.5 includes() 알고리즘
____5.6.6 집합 연산 실습
__5.7 요약
__5.8 연습문제

6장 정렬, 병합, 검색, 분리
__6.1 범위를 정렬하기
____6.1.1 같은 원소의 정렬과 순서
____6.1.2 부분 정렬
____6.1.3 정렬된 범위의 테스트
__6.2 범위를 병합하기
__6.3 범위를 검색하기
____6.3.1 범위에서 원소 찾기
____6.3.2 범위에서 원소 범위 중에 하나를 찾기
____6.3.3 범위에서 여러 원소를 찾기
______6.3.3.1 find_end() 알고리즘
______6.3.3.2 search() 알고리즘
______6.3.3.3 search_n() 알고리즘
__6.4 범위를 분리하기
____6.4.1 partition_copy() 알고리즘
____6.4.2 partition_point() 알고리즘
__6.5 이진 탐색 알고리즘
____6.5.1 binary_search() 알고리즘
____6.5.2 lower_bound() 알고리즘
____6.5.3 equal_range() 알고리즘
__6.6 요약
__6.7 연습문제

7장 다양한 알고리즘
__7.1 원소 속성을 테스트하기
__7.2 범위를 비교하기
____7.2.1 범위에서 일치하지 않는 위치를 찾기
____7.2.2 사전 순서로 범위 비교하기
____7.2.3 범위의 순열
__7.3 범위를 복제하기
____7.3.1 n개의 원소들을 복제하기
____7.3.2 조건에 따라 복제하기
____7.3.3 역순으로 복제하기
__7.4 원소 순서를 뒤집어서 복제하기
__7.5 인접한 중복 원소를 제거하고 범위를 복제하기
__7.6 범위에서 인접한 중복을 제거하기
__7.7 범위를 회전하기
__7.8 범위를 이동하기
__7.9 범위에서 원소들을 제거하기
__7.10 범위에서 원소를 설정하고 수정하기
____7.10.1 원소 값을 함수로 생성하기
____7.10.2 범위를 변경하기
____7.10.3 범위의 원소를 치환하기
__7.11 알고리즘을 적용하기
__7.12 요약
__7.13 연습문제

8장 랜덤 숫자 생성하기
__8.1 랜덤 숫자란 무엇인가?
__8.2 확률, 분포, 엔트로피
____8.2.1 확률이란 무엇인가?
____8.2.2 분포란 무엇인가?
____8.2.3 엔트로피는 무엇인가?
__8.3 STL에서 랜덤 숫자를 생성하기
____8.3.1 랜덤 숫자 생성에서 시드
____8.3.2 랜덤 시드 구하기
____8.3.3 시드 순차열
__8.4 분포 클래스
____8.4.1 기본 랜덤 넘버 생성기
____8.4.2 분포 객체를 생성하기
____8.4.3 균등분포
______8.4.3.1 이산균등분포
______8.4.3.2 균등분포 정수 적용하기
______8.4.3.3 연속균등분포
______8.4.3.4 연속균등분포를 사용하기
______8.4.3.5 표준균등분포를 생성하기
____8.4.4 정규분포
______8.4.4.1 정규분포를 사용하기
____8.4.5 로그정규분포
______8.4.5.1 로그정규분포 사용하기
____8.4.6 정규분포와 관련된 다른 분포
____8.4.7 샘플링분포
______8.4.7.1 이산분포
______8.4.7.2 이산분포 사용하기
______8.4.7.3 조각 상수분포
______8.4.7.4 조각 선형분포
____8.4.8 나머지 분포
______8.4.8.1 푸아송분포
______8.4.8.2 기하분포
______8.4.8.3 지수분포
______8.4.8.4 감마분포
______8.4.8.5 베이불분포
______8.4.8.6 이항분포
______8.4.8.7 음이항분포
______8.4.8.8 극치분포
__8.5 랜덤 넘버 엔진과 생성기
____8.5.1 선형 합동 엔진
______8.5.1.1 선형 합동 엔진에 기반한 생성기
____8.5.2 메르센 트위스터 엔진
______8.5.2.1 메르센 트위스터 엔진의 인스턴스인 생성기
____8.5.3 감산 캐리 엔진
______8.5.3.1 감산 캐리 엔진의 인스턴스인 생성기
__8.6 원소 범위를 섞기
__8.7 요약
__8.8 연습문제

9장 스트림 연산
__9.1 스트림 반복자
____9.1.1 입력 스트림 반복자
______9.1.1.1 반복자와 스트림 반복자
______9.1.1.2 입력 스트림 함수 멤버를 사용해 읽기
____9.1.2 출력 스트림 반복자
______9.1.2.1 출력 스트림 반복자의 함수 멤버를 사용한 쓰기
__9.2 삽입 연산자와 추출 연산자를 오버로딩하기
__9.3 스트림 반복자를 파일과 사용하기
____9.3.1 파일 스트림
____9.3.2 파일 스트림 클래스 템플릿
____9.3.3 스트림 반복자를 사용한 파일 입력
____9.3.4 스트림 반복자를 사용해 파일 읽기를 반복하기
____9.3.5 스트림 반복자를 사용한 파일 출력
__9.4 스트림 반복자와 알고리즘
__9.5 스트림 버퍼 반복자
____9.5.1 입력 스트림 버퍼 반복자
____9.5.2 출력 스트림 버퍼 반복자
____9.5.3 스트림 버퍼 반복자와 파일 스트림 사용하기
__9.6 문자열 스트림, 스트림, 스트림 버퍼 반복자
__9.7 요약
__9.8 연습문제

10장 수치, 시간, 복소수 데이터 사용하기
__10.1 수치 계산
__10.2 수치 알고리즘
____10.2.1 범위에 증분값을 저장하기
____10.2.2 범위 합계
____10.2.3 내적
______10.2.3.1 내적 적용하기
______10.2.3.2 내적 연산의 대안을 정의하기
____10.2.4 인접 원소들의 차
____10.2.5 부분 합
____10.2.6 극댓값과 극솟값
__10.3 수치 값을 저장하고 이용하기
____10.3.1 valarray 객체의 기본 연산
____10.3.2 단항 연산자
____10.3.3 valarray 객체에 복합 할당 연산자 사용하기
____10.3.4 valarray 객체에 이항 연산자 적용하기
____10.3.5 valarray 객체의 원소에 접근하기
______10.3.5.1 슬라이스 생성하기
______10.3.5.2 행을 선택하기
______10.3.5.3 열을 선택하기
______10.3.5.4 슬라이스 사용하기
______10.3.5.5 슬라이스를 적용해 방정식을 풀기
______10.3.5.6 가우스 소거법
______10.3.5.7 소거 과정
______10.3.5.8 최적 피벗 찾기
______10.3.5.9 다중 슬라이스
______10.3.5.10 행이나 열을 여러 개 선택하기
______10.3.5.11 gslice 객체 사용하기
______10.3.5.12 원소에서 임의의 서브셋을 선택하기
______10.3.5.13 원소를 조건에 따라 선택하기
__10.4 유리수 계산
__10.5 시간 관련 템플릿
____10.5.1 duration 정의하기
______10.5.1.1 duration의 산술 연산
______10.5.1.2 duration 타입의 변환
______10.5.1.3 duration 비교
______10.5.1.4 duration 리터럴
____10.5.2 클록과 시점
______10.5.2.1 시점 생성하기
______10.5.2.2 시점의 duration
______10.5.2.3 시점으로 산술 연산
______10.5.2.4 시점을 비교하기
______10.5.2.5 클록으로 연산하기
______10.5.2.6 실행 시간 측정하기
__10.6 복소수
____10.6.1 복소수를 표현하는 객체를 생성하기
____10.6.2 복소수 연산
____10.6.3 복소수의 비교와 기타 연산
____10.6.4 복소수를 사용하는 간단한 예제
__10.7 요약
__10.8 연습문제

작가 소개

목 차

역자 소개

01. 반품기한
  • 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
  • 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품 배송비
반품사유 반품 배송비 부담자
단순변심 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다.
상품의 불량 또는 오배송 고객 부담이 아닙니다.
03. 배송상태에 따른 환불안내
환불안내
진행 상태 결제완료 상품준비중 배송지시/배송중/배송완료
어떤 상태 주문 내역 확인 전 상품 발송 준비 중 상품이 택배사로 이미 발송 됨
환불 즉시환불 구매취소 의사전달 → 발송중지 → 환불 반품회수 → 반품상품 확인 → 환불
04. 취소방법
  • 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
  • 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
환불시점
결제수단 환불시점 환불방법
신용카드 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) 신용카드 승인취소
계좌이체 실시간 계좌이체 또는 무통장입금
취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준)
계좌입금
휴대폰 결제 당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소
전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준)
당일취소 : 휴대폰 결제 승인취소
익월취소 : 계좌입금
포인트 취소 완료 후, 당일 포인트 적립 환불 포인트 적립
06. 취소반품 불가 사유
  • 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
  • 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
  • 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
  • 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
  • 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
  • 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.

환불불가
상품군 취소/반품 불가사유
의류/잡화/수입명품 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우
계절상품/식품/화장품 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
가전/설치상품 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.)
자동차용품 상품을 개봉하여 장착한 이후 단순변심의 경우
CD/DVD/GAME/BOOK등 복제가 가능한 상품의 포장 등을 훼손한 경우
내비게이션, OS시리얼이 적힌 PMP 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우
노트북, 테스크탑 PC 등 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우