목차
1장 표준 템플릿 라이브러리 = 21
  1.1 기본 아이디어 = 23
  1.2 템플릿 = 24
  1.3 컨테이너 = 29
  1.4 반복자 = 31
    1.4.1 반복자 얻기 = 32
    1.4.2 반복자 카테고리 = 33
    1.4.3 스트림 반복자 = 36
    1.4.4 반복자 어댑터 = 37
      1.4.4.1 역방향 반복자 = 38
      1.4.4.2 삽입 반복자 = 39
      1.4.4.3 이동 반복자 = 40
  1.5 반복자에 쓰이는 연산 = 40
  1.6 스마트 포인터 = 42
    1.6.1 unique_ptr〈T〉포인터 사용하기 = 43
      1.6.1.1 unique_ptr〈T〉객체를 초기화하기 = 45
      1.6.1.2 unique_ptr〈T〉객체를 비교하고 검사하기 = 47
    1.6.2 shared_ptr〈T〉객체 사용하기 = 47
      1.6.2.1 shared_ptr〈T〉객체 초기화하기 = 49
      1.6.2.2 shared_ptr〈T〉객체를 비교하고 검사하기 = 50
    1.6.3 weak_ptr〈T〉포인터 = 51
  1.7 알고리즘 = 53
  1.8 함수를 인수로 전달하기 = 54
    1.8.1 함수 객체 = 54
    1.8.2 람다 표현식 = 55
      1.8.2.1 람다 표현식에 이름 지정하기 = 56
      1.8.2.2 람다 표현식을 함수에 전달하기 = 56
      1.8.2.3 캡처 절 = 58
  1.9 요약 = 61
  1.10 연습문제 = 62
2장 순차 컨테이너 = 63
  2.1 순차 컨테이너 = 65
    2.1.1 컨테이너의 공통 함수 멤버 = 67
  2.2 array〈T, N〉컨테이너 사용하기 = 70
    2.2.1 원소에 접근하기 = 71
    2.2.2 array 컨테이너에서 반복자 사용하기 = 75
    2.2.3 array 컨테이너의 비교 = 77
  2.3 vector〈T〉컨테이너 사용하기 = 78
    2.3.1 vector〈T〉컨테이너 생성하기 = 79
    2.3.2 벡터의 용량과 크기 = 81
    2.3.3 원소에 접근하기 = 82
    2.3.4 vector 컨테이너에서 반복자 사용하기 = 83
    2.3.5 벡터 컨테이너에 새 원소 추가하기 = 88
      2.3.5.1 원소를 추가하기 = 88
      2.3.5.2 원소를 삽입하기 = 89
    2.3.6 원소를 삭제하기 = 93
    2.3.7 vector〈bool〉컨테이너 = 98
  2.4 deque〈T〉컨테이너 사용하기 = 99
    2.4.1 deque 컨테이너 생성하기 = 99
    2.4.2 원소에 접근하기 = 101
    2.4.3 원소를 추가하고 제거하기 = 101
    2.4.4 deque 컨테이너의 내용을 대체하기 = 102
  2.5 list〈T〉컨테이너 사용하기 = 105
    2.5.1 list 컨테이너 생성하기 = 106
    2.5.2 원소 추가하기 = 107
    2.5.3 원소를 제거하기 = 109
    2.5.4 원소를 정렬하고 병합하기 = 110
    2.5.5 원소에 접근하기 = 114
  2.6 forward_list〈T〉컨테이너 사용하기 = 117
  2.7 반복자를 직접 정의하기 = 123
    2.7.1 STL 반복자 요구사항 = 124
      2.7.1.1 STL 반복자 사용의 문제 = 124
    2.7.2. STL 접근 방식 = 125
      2.7.2.1 반복자 템플릿 사용하기 = 129
      2.7.2.2 STL 반복자 멤버 함수 요구사항 = 130
  2.8 요약 = 136
  2.9 연습문제 = 138
3장 컨테이너 어댑터 = 139
  3.1 컨테이너 어댑터는 무엇인가? = 141
  3.2 stack〈T〉컨테이너 어댑터 생성과 사용하기 = 141
    3.2.1 스택 연산 = 143
  3.3 queue〈T〉컨테이너 어댑터 생성과 사용하기 = 149
    3.3.1 큐 연산 = 150
    3.3.2 queue 컨테이너의 실제 사용 = 151
  3.4 priority_queue〈T〉컨테이너 어댑터 사용하기 = 158
    3.4.1 우선순위 큐를 생성하기 = 159
    3.4.2 우선순위 큐를 위한 연산 = 161
  3.5 힙 = 165
    3.5.1 힙 생성하기 = 166
    3.5.2 힙 연산 = 168
  3.6 포인터를 컨테이너에 저장하기 = 175
    3.6.1 순차열 컨테이너에 포인터 저장하기 = 176
    3.6.2 우선순위 큐에 포인터 저장하기 = 185
    3.6.3 포인터 힙 = 187
    3.6.4 기반 클래스 포인터를 담은 컨테이너 = 188
    3.6.5 알고리즘을 포인터 범위에 적용하기 = 192
  3.7 요약 = 193
  3.8 연습문제 = 195
4장 map 컨테이너 = 197
  4.1 맵 컨테이너 소개 = 199
  4.2 map 컨테이너 사용하기 = 200
    4.2.1 map 컨테이너 생성하기 = 202
    4.2.2 맵에 원소 삽입하기 = 204
    4.2.3 map 원소를 내부에서 생성하기 = 213
    4.2.4 map의 원소들에 접근하기 = 214
    4.2.5 원소 삭제하기 = 225
  4.3 pair〈〉와 tuple〈〉객체 사용하기 = 226
    4.3.1 pair 연산 = 227
    4.3.2 tuple 연산 = 230
    4.3.3 tuple과 pair를 함께 사용 = 233
  4.4 multimap 컨테이너 사용하기 = 240
  4.5 비교 함수를 바꾸기 = 245
    4.5.1 greater〈T〉객체 사용하기 = 246
    4.5.2 원소를 비교하는 함수 객체 정의하기 = 247
  4.6 해싱 = 248
    4.6.1 해시 값을 생성하는 함수 = 250
  4.7 unordered_map 컨테이너 사용하기 = 253
    4.7.1 unordered_map 컨테이너 생성과 관리하기 = 255
    4.7.2 버킷 개수 조정하기 = 258
    4.7.3 원소 삽입하기 = 260
    4.7.4 원소에 접근하기 = 262
    4.7.5 원소 제거하기 = 262
    4.7.6 버킷에 접근하기 = 263
  4.8 unordered_multimap 컨테이너 사용하기 = 268
  4.9 요약 = 278
  4.10 연습문제 = 280
5장 set으로 작업하기 = 281
  5.1 set 컨테이너 이해하기 = 283
  5.2 set〈T〉컨테이너 사용하기 = 284
    5.2.1 원소 추가와 제거 = 286
    5.2.2 원소에 접근하기 = 287
    5.2.3 set으로 작업하기 = 288
      5.2.3.1 학생 생성하기 = 290
      5.2.3.2 과목을 수강하는 학생들을 set으로 생성하기 = 291
      5.2.3.3 과목과 코스를 생성하기 = 292
      5.2.3.4 코스에 학생을 등록하기 = 293
      5.2.3.5 학생들의 수강 과목 검사하기 = 294
      5.2.3.6 코스를 출력하기 = 295
      5.2.3.7 전체 프로그램 = 297
    5.2.4 set 반복자 = 300
    5.2.5 set 컨테이너에 포인터 저장하기 = 300
      5.2.5.1 set 컨테이너에 스마트 포인터를 저장하는 예제 = 302
      5.2.5.2 shared_ptr 원소들의 벡터를 생성하기 = 303
      5.2.5.3 weak_ptr가 참조하는 객체를 출력하기 = 304
      5.2.5.4 map 컨테이너에서 스마트 포인터를 키로 사용하기 = 305
      5.2.5.5 스마트 포인터를 비교할 때의 문제점 = 306
  5.3 multiset〈T〉컨테이너 사용하기 = 308
    5.3.1 포인터를 파생 클래스 객체에 저장하기 = 311
      5.3.1.1 컨테이너를 정의하기 = 314
      5.3.1.2 예제에 사용할 main() 정의하기 = 315
  5.4 unordered_set〈T〉컨테이너 사용하기 = 319
    5.4.1 원소 추가하기 = 321
    5.4.2 원소 가져오기 = 322
    5.4.3 원소 삭제하기 = 323
    5.4.4 버킷 리스트를 보여주기 = 324
  5.5 unordered_multiset〈T〉컨테이너 사용하기 = 325
  5.6 set 연산 = 332
    5.6.1 set_union() 알고리즘 = 334
    5.6.2 set_intersection() 알고리즘 = 335
    5.6.3 set_difference() 알고리즘 = 336
    5.6.4 set_symmetric_difference() 알고리즘 = 336
    5.6.5 includes() 알고리즘 = 337
    5.6.6 집합 연산 실습 = 339
  5.7 요약 = 341
  5.8 연습문제 = 342
6장 정렬, 병합, 검색, 분리 = 345
  6.1 범위를 정렬하기 = 347
    6.1.1 같은 원소의 정렬과 순서 = 351
    6.1.2 부분 정렬 = 351
    6.1.3 정렬된 범위의 테스트 = 355
  6.2 범위를 병합하기 = 357
  6.3 범위를 검색하기 = 368
    6.3.1 범위에서 원소 찾기 = 368
    6.3.2 범위에서 원소 범위 중에 하나를 찾기 = 370
    6.3.3 범위에서 여러 원소를 찾기 = 372
      6.3.3.1 find_end() 알고리즘 = 373
      6.3.3.2 search() 알고리즘 = 375
      6.3.3.3 search_n() 알고리즘 = 376
  6.4 범위를 분리하기 = 377
    6.4.1 partition_copy() 알고리즘 = 379
    6.4.2 partition_point() 알고리즘 = 381
  6.5 이진 탐색 알고리즘 = 382
    6.5.1 binary_search() 알고리즘 = 383
    6.5.2 lower_bound() 알고리즘 = 384
    6.5.3 equal_range() 알고리즘 = 385
  6.6 요약 = 389
  6.7 연습문제 = 390
7장 다양한 알고리즘 = 391
  7.1 원소 속성을 테스트하기 = 393
  7.2 범위를 비교하기 = 395
    7.2.1 범위에서 일치하지 않는 위치를 찾기 = 398
    7.2.2 사전 순서로 범위 비교하기 = 402
    7.2.3 범위의 순열 = 403
  7.3 범위를 복제하기 = 409
    7.3.1 n개의 원소들을 복제하기 = 409
    7.3.2 조건에 따라 복제하기 = 410
    7.3.3 역순으로 복제하기 = 411
  7.4 원소 순서를 뒤집어서 복제하기 = 414
  7.5 인접한 중복 원소를 제거하고 범위를 복제하기 = 416
  7.6 범위에서 인접한 중복을 제거하기 = 417
  7.7 범위를 회전하기 = 419
  7.8 범위를 이동하기 = 421
  7.9 범위에서 원소들을 제거하기 = 424
  7.10 범위에서 원소를 설정하고 수정하기 = 426
    7.10.1 원소 값을 함수로 생성하기 = 427
    7.10.2 범위를 변경하기 = 429
    7.10.3 범위의 원소를 치환하기 = 433
  7.11 알고리즘을 적용하기 = 434
  7.12 요약 = 440
  7.13 연습문제 = 447
8장 랜덤 숫자 생성하기 = 449
  8.1 랜덤 숫자란 무엇인가? = 451
  8.2 확률, 분포, 엔트로피 = 452
    8.2.1 확률이란 무엇인가? = 452
    8.2.2 분포란 무엇인가? = 452
    8.2.3 엔트로피는 무엇인가? = 454
  8.3 STL에서 랜덤 숫자를 생성하기 = 455
    8.3.1 랜덤 숫자 생성에서 시드 = 456
    8.3.2 랜덤 시드 구하기 = 456
    8.3.3 시드 순차열 = 458
  8.4 분포 클래스 = 461
    8.4.1 기본 랜덤 넘버 생성기 = 462
    8.4.2 분포 객체를 생성하기 = 463
    8.4.3 균등분포 = 465
      8.4.3.1 이산균등분포 = 465
      8.4.3.2 균등분포 정수 적용하기 = 468
      8.4.3.3 연속균등분포 = 473
      8.4.3.4 연속균등분포를 사용하기 = 474
      8.4.3.5 표준균등분포를 생성하기 = 477
    8.4.4 정규분포 = 479
      8.4.4.1 정규분포를 사용하기 = 482
    8.4.5 로그정규분포 = 485
      8.4.5.1 로그정규분포 사용하기 = 486
    8.4.6 정규분포와 관련된 다른 분포 = 490
    8.4.7 샘플링분포 = 490
      8.4.7.1 이산분포 = 491
      8.4.7.2 이산분포 사용하기 = 494
      8.4.7.3 조각 상수분포 = 500
      8.4.7.4 조각 선형분포 = 504
    8.4.8 나머지 분포 = 508
      8.4.8.1 푸아송분포 = 508
      8.4.8.2 기하분포 = 509
      8.4.8.3 지수분포 = 510
      8.4.8.4 감마분포 = 510
      8.4.8.5 베이불분포 = 510
      8.4.8.6 이항분포 = 511
      8.4.8.7 음이항분포 = 512
      8.4.8.8 극치분포 = 513
  8.5 랜덤 넘버 엔진과 생성기 = 514
    8.5.1 선형 합동 엔진 = 515
      8.5.1.1 선형 합동 엔진에 기반한 생성기 = 516
    8.5.2 메르센 트위스터 엔진 = 516
      8.5.2.1 메르센 트위스터 엔진의 인스턴스인 생성기 = 517
    8.5.3 감산 캐리 엔진 = 517
      8.5.3.1 감산 캐리 엔진의 인스턴스인 생성기 = 518
  8.6 원소 범위를 섞기 = 518
  8.7 요약 = 519
  8.8 연습문제 = 521
9장 스트림 연산 = 523
  9.1 스트림 반복자 = 525
    9.1.1 입력 스트림 반복자 = 525
      9.1.1.1 반복자와 스트림 반복자 = 526
      9.1.1.2 입력 스트림 함수 멤버를 사용해 읽기 = 527
    9.1.2 출력 스트림 반복자 = 530
      9.1.2.1 출력 스트림 반복자의 함수 멤버를 사용한 쓰기 = 531
  9.2 삽입 연산자와 추출 연산자를 오버로딩하기 = 532
  9.3 스트림 반복자를 파일과 사용하기 = 534
    9.3.1 파일 스트림 = 534
    9.3.2 파일 스트림 클래스 템플릿 = 535
    9.3.3 스트림 반복자를 사용한 파일 입력 = 537
    9.3.4 스트림 반복자를 사용해 파일 읽기를 반복하기 = 539
    9.3.5 스트림 반복자를 사용한 파일 출력 = 541
  9.4 스트림 반복자와 알고리즘 = 543
  9.5 스트림 버퍼 반복자 = 548
    9.5.1 입력 스트림 버퍼 반복자 = 548
    9.5.2 출력 스트림 버퍼 반복자 = 550
    9.5.3 스트림 버퍼 반복자와 파일 스트림 사용하기 = 551
  9.6 문자열 스트림, 스트림, 스트림 버퍼 반복자 = 553
  9.7 요약 = 557
  9.8 연습문제 = 558
10장 수치, 시간, 복소수 데이터 사용하기 = 559
  10.1 수치 계산 = 561
  10.2 수치 알고리즘 = 561
    10.2.1 범위에 증분값을 저장하기 = 562
    10.2.2 범위 합계 = 563
    10.2.3 내적 = 565
      10.2.3.1 내적 적용하기 = 566
      10.2.3.2 내적 연산의 대안을 정의하기 = 569
    10.2.4 인접 원소들의 차 = 570
    10.2.5 부분 합 = 571
    10.2.6 극댓값과 극솟값 = 573
  10.3 수치 값을 저장하고 이용하기 = 574
    10.3.1 valarray 객체의 기본 연산 = 576
    10.3.2 단항 연산자 = 581
    10.3.3 valarray 객체에 복합 할당 연산자 사용하기 = 582
    10.3.4 valarray 객체에 이항 연산자 적용하기 = 583
    10.3.5 valarray 객체의 원소에 접근하기 = 585
      10.3.5.1 슬라이스 생성하기 = 586
      10.3.5.2 행을 선택하기 = 587
      10.3.5.3 열을 선택하기 = 588
      10.3.5.4 슬라이스 사용하기 = 589
      10.3.5.5 슬라이스를 적용해 방정식을 풀기 = 592
      10.3.5.6 가우스 소거법 = 593
      10.3.5.7 소거 과정 = 593
      10.3.5.8 최적 피벗 찾기 = 594
      10.3.5.9 다중 슬라이스 = 604
      10.3.5.10 행이나 열을 여러 개 선택하기 = 606
      10.3.5.11 gslice 객체 사용하기 = 608
      10.3.5.12 원소에서 임의의 서브셋을 선택하기 = 609
      10.3.5.13 원소를 조건에 따라 선택하기 = 610
  10.4 유리수 계산 = 612
  10.5 시간 관련 템플릿 = 616
    10.5.1 duration 정의하기 = 617
      10.5.1.1 duration의 산술 연산 = 618
      10.5.1.2 duration 타입의 변환 = 620
      10.5.1.3 duration 비교 = 621
      10.5.1.4 duration 리터럴 = 622
    10.5.2 클록과 시점 = 623
      10.5.2.1 시점 생성하기 = 625
      10.5.2.2 시점의 duration = 626
      10.5.2.3 시점으로 산술 연산 = 627
      10.5.2.4 시점을 비교하기 = 629
      10.5.2.5 클록으로 연산하기 = 630
      10.5.2.6 실행 시간 측정하기 = 632
  10.6 복소수 = 634
    10.6.1 복소수를 표현하는 객체를 생성하기 = 634
    10.6.2 복소수 연산 = 636
    10.6.3 복소수의 비교와 기타 연산 = 636
    10.6.4 복소수를 사용하는 간단한 예제 = 638
  10.7 요약 = 641
  10.8 연습문제 = 642
찾아보기 = 643
닫기