You are on page 1of 2

표 9.1.

원소를 수정하지 않는 알고리즘


이름 효과 페이지
for_each() 각각의 원소에 대해서 동작을 수행한다 390
count() 원소의 개수를 반환한다 394
count_if() 기준에 적합한 원소의 개수를 반환한다 394
min_element() 가장 작은 값을 가지는 원소를 반환한다 396
max_element() 가장 큰 값을 가지는 원소를 반환한다 396
find() 인자로 전달된 값과 동일한 값을 가지는 첫 번째 원소의 위치를 반환한다 398
find_if() 기준에 적합한 첫 번째 원소의 위치를 반환한다 398
search_n() 검색 조건과 일치하는 원소들이 연속적으로 n 번 나타나는 경우를 검색한다 401
search() 일정 부분이 처음으로 나오는 위치를 찾는다 404
find_end() 일정 부분이 마지막으로 나오는 위치를 찾는다 407
find_first_of() 여러 개의 원소 중 하나가 처음 나오는 위치를 찾는다 409
adjacent_find() 일치하는(기준에 맞는) 인접한 두 원소를 찾는다 411
equal() 두 범위가 동일한지 판단한다 413
mismatch() 두 범위에서 다른 값의 존재 여부를 검색한다 415
lexicographical_compare 사전식(lexicographically) 방법으로 적은지(less) 판단한다 417
()
표 9.3 원소를 수정하는 알고리즘
이름 효과 페이지
for_each() 각각의 원소에 대해서 동작을 수행한다 390
copy() 첫 번째 원소로 시작하는 범위를 복사한다 420
copy_backward( 마지막 원소로 시작하는 범위를 복사한다 420
)
transform() 두 범위의 원소를 결합하거나 변경한다 426
merge() 두 정렬된 범위를 병합한다 475
swap_ranges() 두 범위의 원소를 교환한다 430
fill() 각각의 원소를 주어진 값으로 교체한다 430
fill_n() 명시된 n 개의 원소를 주어진 값으로 교체한다 430
generate() 각각의 원소를 특정 동작의 결과값으로 교체한다 431
generate_n() 명시된 n 개의 원소를 특정 동작의 결과값으로 교체한다 431
replace() 특정 값을 가지고 있던 원소를 다른 값으로 교체한다 433
replace_if() 특정 기준에 부합하는 원소를 다른 값으로 교체한다 433
replace_copy() 원본의 범위를 복사하면서 replace()를 실행한다 434
replace_copy_if( 원본의 범위를 복사하면서 replace_if()를 실행한다 434
)
표 9.4. 제거 알고리즘
이름 효과 페이지
remove() 주어진 값과 동일한 원소를 제거한다 436
remove_if() 주어진 기준을 만족하는 원소를 제거한다 436
remove_copy() 주어진 값과 다른 원소를 복사한다 438
remove_copy_if( 주어진 기준을 만족하지 않는 원소를 복사한다 438
)
unique() 중복된 원소를 제거한다 439
unique_copy() 중복된 원소를 제외하고 복사한다 442
표 9.5. 변경 알고리즘
이름 효과 페이지
reverse() 원소의 순서를 바꾼다 444
reverse_copy() 원소의 순서를 바꾸면서 복사한다 444
rotate() 원소의 순서를 순회한다 446
rotate_copy() 원소의 순서를 순회하면서 복사한다 447
next_permutation 원소의 순열 계산 449
()
prev_permutation 원소의 순열 계산 449
()
random_shuffle() 원소를 임의의 순서로 뒤섞는다 451
partition() 조건을 만족하는 원소를 앞쪽으로 옮긴다 454
stable_partition() partition()과 동일하나 상대적인 순서를 유지한다 454

표 9.6. 정렬 알고리즘
이름 효과 페이지
sort() 모든 원소를 정렬한다 456
stable_sort() 같은 순서의 순서를 유지하면서 정렬한다 456
partial_sort() 명시된 n 개의 원소까지 정렬한다 459
partial_sort_copy 명시된 n 개의 원소까지 정렬하면서 복사한다 461
()
nth_element() n 번째 원소까지 정렬한다 462
partition() 조건을 만족하는 원소를 앞쪽으로 옮긴다 454
stable_partition() partition()과 동일하나 상대적인 순서를 유지한다 454
make_heap() 지정된 범위를 힙으로 구성한다 465
push_heap() 힙에 원소를 추가한다 465
pop_heap() 힙에서 다음 원소를 제거한다 466
sort_heap() 지정된 범위의 원소를 정렬한다(실행된 이후는 힙이 아니다) 466
표 9.7. 정렬된 범위 알고리즘
이름 효과 페이지
binary_search() 특정 원소의 존재 여부 판 469
includes() 어떤 범위의 각 원소가 다른 범위의 원소인지 판단 470
lower_bound() 주어진 값보다 크거나 같은 첫 원소의 위치를 반환한다 472
upper_bound() 주어진 값보다 큰 첫 원소의 위치를 반환한다 472
equal_range() 주어진 원소와 같은 값을 가진 원소의 범위를 반환한다 474
merge() 두 정렬된 범위를 병합한다 475
set_union() 두 정렬된 범위의 합집합을 계산한다 477
set_intersection() 두 정렬된 범위의 교집합을 계산한다 478
set_difference() 두 정렬된 범위의 차집합을 계산한다 479
set_symmetric_differenc 두 정렬된 범위의 대칭 차집합을 계산한다 480
e()
inplace_merge() 연속적으로 정렬된 범위를 병합한다 483

표 9.8. Numeric Algorithms


이름 효과 페이지
accumulate() 모든 원소의 값을 결합한다 484
inner_product() 두 범위의 각 원소의 값의 내적을 구한다 486
adjacent_difference 각 원소를 앞의 원소와 결합한다; 절대적인 값을 상대적인 값으로 변경한다 490
()
partial_sum() 각 원소를 앞의 모든 원소와 결합한다; 상대적인 값을 절대적인 값으로 변경한다 488

표 9.2. 스트링 클래스와 STL 알고리즘의 검색 함수의 비교


검색 스트링 클래스 STL 알고리즘
인자로 전달된 값과 동일한 값을 가지는 첫 번째 원소의 위치를 반환 find() find()
인자로 전달된 값과 동일한 값을 가지는 마지막 원소의 위치를 반환 rfind() 역방향 반복자를 사용한 find()
첫 번째 범위의 부분 검색 find() search()
마지막 부분의 범위 검색 rfind() find_end()
여러 개의 원소, 즉 범위에 대한 검색 find_first_of( find_first_of()
)
여러 개의 원소, 즉 범위에 대한 검색, 뒤에서부터 검색 find_last_of() 역방향 반복자를 사용한 find_first_of()
검색 조건과 매치되는 원소들이 연속적으로 n 번 나타나는 경우를 검색 (없음) search_n()