다음을 통해 공유


<algorithm>

알고리즘을 수행 하는 표준 템플릿 라이브러리 (STL) 컨테이너 템플릿 함수를 정의 합니다.

namespace std {
template<class InputIterator, class Predicate>
    bool all_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    bool any_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    bool none_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Function>
    Fn1 for_each (
        InputIterator _First, 
        InputIterator _Last, 
        Function _Func
    );
template<class InputIterator, class Type>
    InputIterator find (
        InputIterator _First, 
        InputIterator _Last, 
        const Type& _Val
    );
template<class InputIterator, class Predicate>
    InputIterator find_if (
        InputIterator _First, 
        InputIterator _Last, 
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    InputIterator find_if_not (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    ); 
template<class ForwardIterator1, class ForwardIterator2>
    ForwardIterator1 find_end (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2
    );
template<class ForwardIterator1, class ForwardIterator2, 
         class Predicate>
    ForwardIterator1 find_end (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2, 
        Predicate _Pred
    );
template<class InputIterator, class ForwardIterator>
    InputIterator1 find_first_of (
        InputIterator _First1, 
        InputIterator _Last1,
        ForwardIterator _First2, 
        ForwardIterator _Last2
    );
template<class InputIterator, class ForwardIterator, 
         class Predicate>
    InputIterator1 find_first_of (
        InputIterator _First1, 
        InputIterator _Last1,
        ForwardIterator _First2, 
        ForwardIterator _Last2, 
        Predicate _Pred
    );
template<class ForwardIterator>
    ForwardIterator adjacent_find (
        ForwardIterator _First, 
        ForwardIterator _Last
    );
template<class ForwardIterator, class Predicate>
    ForwardIterator adjacent_find (
        ForwardIterator _First, 
        ForwardIterator _Last, 
        Predicate _Pred
    );
template<class InputIterator, class Type>
    typename iterator_traits<InputIterator>::difference_type
        count (
            InputIterator _First, 
            InputIterator _Last,
            const Type& _Val
        );
template<class InputIterator, class Predicate>
    typename iterator_traits<InputIterator>::difference_type
        count_if (
            InputIterator _First, 
            InputIterator _Last,
            Predicate _Pred
        );
template<class InputIterator1, class InputIterator2>
    pair<InputIterator1, InputIterator2> 
        mismatch (
            InputIterator1 _First1, 
            InputIterator1 _Last1,
            InputIterator2 _First2
        );
template<class InputIterator1, class InputIterator2, class Predicate>
    pair<InputIterator1, InputIterator2> 
        mismatch (
            InputIterator1 _First1, 
            InputIterator1 _Last1,
            InputIterator2 _First2, 
            Predicate _Pred
        );
template<class InputIterator1, class InputIterator2>
    bool equal (
        InputIterator1 _First1, 
        InputIterator1 _Last1, 
        InputIterator2 _First2
    );
template<class InputIterator1, class InputIterator2, class Predicate>
    bool equal (
        InputIterator1 _First1, 
        InputIterator1 _Last1, 
        InputIterator2 _First2, 
        Predicate _Pred
    );
template<class ForwardIterator1, class ForwardIterator2>
    ForwardIterator1 search (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2
    );
template<class ForwardIterator1, class ForwardIterator2, 
         class Predicate>
    ForwardIterator1 search (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2, 
        Predicate _Pred
    );
template<class ForwardIterator, class Size, class Type>
    ForwardIterator search_n (
        ForwardIterator _First, 
        ForwardIterator _Last,
        Size _Count, 
        const Type& _Val
    );
template<class ForwardIterator, class Size, class Type, 
         class Predicate>
    ForwardIterator search_n (
        ForwardIterator _First, 
        ForwardIterator _Last,
        Size _Count, 
        const Type& _Val, 
        Predicate _Pred
    );

설명

다양 한 데이터 구조에 적용 될 수 있으므로 STL 알고리즘은 일반입니다.작업할 수 있는 데이터 구조 뿐만 아니라 STL 컨테이너 클래스는 다음과 같은 vectorlist, 하지만 또한 프로그램을 정의 하는 데이터 구조 및 배열 요소는 특정 알고리즘의 요구 사항을 충족 합니다.STL 알고리즘이 보편적인 사항에 액세스 하 고 이동 하는 반복기를 통해 간접적으로 컨테이너의 요소를 위해.

STL 알고리즘은 일반적으로 해당 시작 또는 끝 위치에서 지정 된 반복기 범위 처리 합니다.참조 범위에서 범위에서 모든 포인터는 dereferenceable 이어야 합니다 및 각 범위의 시퀀스 내에서 마지막 위치에서 첫 번째 접근할 수 있다는 점에서 유효 해야 증분 여.

STL 알고리즘 작업 및 각 STL 컨테이너의 멤버 함수에서 지 원하는 동작을 확장 하 고, 예를 들어, 여러 종류의 컨테이너 개체를 동시에 작업할 수 있도록 합니다.두 접미사 알고리즘의 목적에 대 한 정보를 전달 하기 위해 사용 되었습니다.

  • 접미사 알고리즘 함수 개체 요소의 값 보다 값은 요소 자체의 작동에 사용 됨을 나타냅니다 경우.find_if 알고리즘 찾는 값 함수 개체에 의해 지정 된 조건을 충족 하는 요소와 find 특정 값 검색 알고리즘.

  • 알고리즘의 요소 값을 조작 뿐만 아니라 또한 수정 된 값을 대상 범위로 복사는 _copy 접미사를 나타냅니다.reverse 알고리즘의 범위 내에서 요소의 순서를 반대로 및 reverse_copy 알고리즘 또한 복사 하면 대상 범위에 있습니다.

STL 알고리즘은 자주 해당 용도 또는 요구 사항에 대 한 정보를 나타내는 그룹으로 분류 됩니다.여기에 보관 하지 않는 알고리즘 nonmodifying 요소의 값을 변경 하는 알고리즘을 수정 합니다.변형 알고리즘 요소, 하지만 해당 요소 값을 변경합니다.제거 알고리즘이 범위나 범위 복사본에서 요소를 제거할 수 있습니다.정렬 알고리즘 요소 범위에 있는 다양 한 방법으로 재배열 하 고 요소가 특정 방식으로 정렬 해야 하는 알고리즘에만 정렬 된 범위 알고리즘을 작동 합니다.

숫자 처리를 제공 하는 STL 숫자 알고리즘 자체 헤더 파일 한 <numeric>, 및 함수 개체 및 어댑터 헤더에 정의 된 <functional> 부울 값을 반환 하는 함수 개체 조건자로 알려져 있습니다.기본 이진 조건부 비교 된 operator<.일반적으로 비교 두 요소 지정 되도록 것 보다 작은 있어야 주문 되는 요소 중 하나 (둘 다 다른 보다 의미)에 해당 하는 나는 보다 작은 다른 결정 합니다.이 순서는 nonequivalent 요소 사이 발생 합니다.

yah1y2x8.collapse_all(ko-kr,VS.110).gif함수

adjacent_find

하나를 두 개의 인접 한 요소에 대 한 검색 하거나 지정 된 조건이 충족 합니다.

all_of

반환 true 조건이 일을 각 요소에 지정 된 범위에 존재 합니다.

any_of

반환 true 조건을 요소의 지정한 범위에서 한 번 이상 표시 되 면.

binary_search

정렬 된 범위는 지정 된 값과 같은 또는 것을 동등한 이진 조건자에 지정 된 점에서 요소 인지 테스트 합니다.

copy

요소 값을 통해 소스 시퀀스의 요소를 반복 하 고 새 위치를 앞쪽에서으로 배정 대상 범위에서 원본 범위에서 할당 합니다.

copy_backward

요소 값을 통해 소스 시퀀스의 요소를 반복 하 고 새 위치를 뒤쪽에 배정 대상 범위에서 원본 범위에서 할당 합니다.

copy_if

테스트 내에서 모든 요소를 복사 합니다. true 지정 된 조건에 대 한

copy_n

지정한 수의 요소를 복사합니다.

count

범위에서 해당 값을 지정 된 값과 일치 요소를 반환 합니다.

count_if

범위에서 값을 지정 된 조건이 일치 요소를 반환 합니다.

같음

요소 별로 같음 또는 등가 이진 조건자에 지정 된 점에서 두 범위를 비교 합니다.

equal_range

한 쌍의 순서가 지정 된 범위의 첫 번째 위치에 지정 된 요소와 두 번째 작음 또는 해당 하는 위치를 찾는 위치 점에서 동등 또는 시퀀스에서 위치를 설정 하는 데 순서 지정할 수 이진 조건부 여 요소 위치를 보다.

fill

지정한 범위에 있는 모든 요소를 같은 새 값을 할당합니다.

fill_n

지정 된 수의 요소 범위를 사용 하 여 특정 요소를 시작 하는 새 값을 할당 합니다.

find

값이 지정 된 범위에서 처음 검색 된 요소의 위치를 찾습니다.

find_end

범위에 지정 된 시퀀스에는 동일 하거나 동등한 이진 조건자에 지정 된 점에서 마지막 subsequence 보일 수 있습니다.

find_first_of

대상 범위 내에서 여러 값의 처음 또는 처음 이진 술 부 지정된 된 요소 집합에 의해 지정 된 점에서 동일 여러 요소를 검색 합니다.

find_if

범위에서 지정한 조건을 만족 하는 중 첫 번째 요소의 위치를 찾습니다.

find_if_not

지정 된 조건을 만족 하지 않는 범위에서 첫 번째 요소를 반환 합니다.

for_each

지정 된 함수 개체 범위 내에서 앞으로 순서로 각 요소에 적용 됩니다 및 함수 개체를 반환 합니다.

생성

함수 개체 범위에 있는 각 요소에 의해 생성 된 값을 할당 합니다.

generate_n

할당 함수 개체는 지정 된 수의 요소에 의해 생성 된 값 범위 이며 위치 하나 과거 할당 된 마지막 값을 반환 합니다.

포함

하나부터 위치 순서 또는 같음 조건 요소 사이의 이진 조건자에 지정 될 수 있습니다 두 번째 정렬 된 범위에 포함 된 모든 요소에 포함 되는지 여부를 테스트 합니다.

inplace_merge

위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 정렬 된 범위에 연속 된 두 개의 정렬 된 범위에서 요소를 결합 합니다.

is_heap

반환 true 힙 요소에 지정 된 범위를 형성 하는 경우.

is_heap_until

반환 true 는 지정한 범위의 마지막 요소까지 힙 한다면.

is_partitioned

반환 true 지정 된 범위에 있는 모든 요소는 테스트 경우 true 조건을 제공 테스트 전에 모든 요소에 대 한 false.

is_sorted

반환 true 요소는 지정 된 범위에 정렬 된 순서 대로 되어 있으면.

is_sorted_until

반환 true 요소는 지정 된 범위에 정렬 된 순서 대로 되어 있으면.

iter_swap

지정 된 반복기 쌍으로 참조 하는 두 값을 교환 합니다.

lexicographical_compare

두 시퀀스 사이 하 급 결정 요소 별로 비교 두 가지.

lower_bound

값 보다 크거나 지정 된 값을 해당 하는 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 있는 순서가 지정 된 범위의 첫 번째 요소의 위치를 찾습니다.

make_checked_array_iterator

생성 된 checked_array_iterator 다른 알고리즘에서 사용할 수 있습니다.

make_heap

힙의 가장 큰 첫 번째 요소입니다 및 이진 조건부에 정렬 기준을 지정할 수는 지정한 범위에서 요소 변환 합니다.

max

두 개체를 비교 하 고 둘 중 더 큰 반환 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다.

max_element

지정 된 범위의 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 처음을의 가장 큰 요소를 찾습니다.

merge

위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위를 두 개의 정렬 된 원본 범위에서 모든 요소를 결합 합니다.

min

두 개체를 비교 하 고 둘 중에서 가장 작은 반환 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다.

min_element

지정한 범위의 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 첫 번째 항목을의 최소 요소를 찾습니다.

minmax

두 입력된 매개 변수를 비교 하 여 최소의 순서로 한 쌍 반환 큰.

minmax_element

수행 작업 수행 min_elementmax_element 한 번 호출에서 합니다.

일치 하지 않습니다.

요소 별로 같음 또는 동등한 이진 조건자에 지정 된 점에서 두 범위를 비교 하 고 첫 번째 위치에 차이가 발생 하는 위치를 찾습니다.

<alg> move

지정한 범위와 연결 된 요소를 이동 합니다.

move_backward

반복기를 한 요소를 다른 위치로 이동 합니다.이동 마지막 요소는 지정 된 범위에서 시작 하 고 해당 범위의 첫 번째 요소와 끝나는.

next_permutation

어디 한 다음 이진 조건부를 지정할 수 있습니다, 있는 경우 원래 주문 다음 사전순 큰 순열에서 교체 됩니다 요소 범위에서 다시 정렬 합니다.

none_of

반환 true 조건이 되 면 절대로 지정 된 범위에 있는 요소 중.

nth_element

파티션을 제대로 찾는 요소의 범위는 nth 요소의 시퀀스 범위에서 보다 작거나 하 고 순서를 따르는 모든 요소 앞에 있는 모든 요소는 이므로 보다 크거나.

partial_sort

작은 요소 범위에 지정 된 숫자는 nondescending 순서 또는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 합니다.

partial_sort_copy

복사 요소는 원본 범위의 위치 소스 요소 정렬 하거나 대상 범위 미만 또는 다른 이진 조건부를 지정 합니다.

partition

요소 범위에 있는 두 개의 분리 된 집합에는에 만족 하지 앞 1 진 조건부 만족 요소와 분류 합니다.

partition_copy

조건이 있는 요소 복사 true 한 대상 하는 조건에 대 한 false 다른.요소에서 지정 된 범위 여야 합니다.

partition_point

주어진된 조건을 만족 하지 않는 범위에서 첫 번째 요소를 반환 합니다.이러한 조건을 만족 하지 않는 그 전에 나오도록 요소 정렬 됩니다.

pop_heap

범위에서 마지막 다음 위치에 힙 앞에서 가장 큰 요소를 제거 하 고 힙의 나머지 요소에서 새 폼.

prev_permutation

어디 한 다음 이진 조건부를 지정할 수 있습니다, 있는 경우 원래 주문 다음 사전순 큰 순열에서 교체 됩니다 요소 범위에서 다시 정렬 합니다.

push_heap

범위에서 이전 요소로 구성 된 기존 힙 범위 끝에 요소를 추가 합니다.

스택으로의

시퀀스를 다시 정렬 N 요소에서 범위 중 하나에 N!임의로 선택 가능한 정렬 합니다.

remove

나머지 요소는 순서에 영향을 주지 않고 지정 된 값을 사용할 수 있는 새 범위의 끝을 반환 합니다. 지정 된 범위에서 지정 된 값을 제거 합니다.

remove_copy

요소는 지정 된 값에서 남은 요소 및 새 대상 범위의 끝을 반환의 순서를 유지 하면서 복사 되지 않습니다 것을 제외 하 고는 소스에서 요소를 복사 대상 범위에 범위.

remove_copy_if

조건자를 만족 되지 않습니다 복사 된다는, 남은 요소 및 새 대상 범위의 끝을 반환의 순서를 유지 하면서 대상 요소를 복사 원본 범위에서 범위.

remove_if

나머지 요소는 순서에 영향을 주지 않고 지정 된 값을 사용할 수 있는 새 범위의 끝을 반환 조건자에 지정 된 범위를 충족 하는 요소를 제거 합니다.

replace

범위에 있는 각 요소를 검사 하 고 지정 된 값과 일치 하는 경우 대체.

replace_copy

원본 범위에서 각 요소를 검사 하 고 결과 새 대상 범위로 복사 하는 동안 지정 된 값과 일치 하면 대체.

replace_copy_if

원본 범위에서 각 요소를 검사 하 고 결과 새 대상 범위로 복사 하는 동안 지정 된 조건자를 만족 시키는 경우 대체.

replace_if

범위에 있는 각 요소를 검사 하 고 지정 된 조건자를 만족 하는 경우 대체 합니다.

역방향

범위 내에서 요소의 순서를 반대로 바꿉니다.

reverse_copy

대상 범위로 복사 하는 동안 원본 범위 내에서 요소의 순서를 반대로 바꿉니다.

회전

두 인접 한 범위에 있는 요소를 교환합니다.

rotate_copy

소스 범위 내의 두 인접 한 범위에 있는 요소를 교환 하 고 결과 대상 범위로 복사 합니다.

검색

시퀀스에 지정 된 시퀀스의 요소 요소가 같은지 또는 요소가 이진 술 부 지정 된 시퀀스의 요소에 의해 지정 된 점에서 동일 대상 범위 내에서 첫 번째 항목을 검색 합니다.

search_n

첫 번째 subsequence 요소의 지정 된 수의 특정 값 이나 관계식 이진 조건부에 지정 된 대로 해당 값을 필요 하는 범위에서 검색 합니다.

set_difference

모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 있지만 두 번째 정렬 된 원본 범위에 정렬 된 원본 범위에 속하는 요소를 넘나들며.

set_intersection

모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 모두 정렬 된 원본 범위에 속하는 요소를 넘나들며.

set_symmetric_difference

모든 하나 하나 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 정렬 된 원본 범위에 속하는 요소를 넘나들며.

set_union

모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 적어도 두 개의 정렬 된 원본 범위 중 하나에 속하는 요소를 넘나들며.

sort

지정한 범위에 있는 요소는 nondescending 순서 또는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 합니다.

sort_heap

힙 정렬 된 범위에 변환합니다.

stable_partition

요소 범위에 있는 두 개의 분리 된 집합에 요소와 해당 요소의 상대적 순서를 유지, 만족 하지는 앞 1 진 조건부 만족 분류 합니다.

stable_sort

지정한 범위에 있는 요소 또는 nondescending 순서는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 하 고 해당 요소의 상대적 순서를 유지 합니다.

스왑

요소 내용의 첫 번째에서 두 번째 및 두 번째 개체가 첫 번째 개체의 내용을 할당 한 개체의 두 형식 간에 값을 교환 합니다.

swap_ranges

요소를 다른 동일한 크기의 요소 범위를 범위를 교환합니다.

변환(Transform)

Function 개체의 반환 값을 대상 범위로 복사 및 각 원본 범위에 요소 또는 요소 쌍 두 원본 범위에서 지정 된 함수 개체를 적용 합니다.

unique

지정 된 범위에서 서로 인접 한 중복 요소를 제거 합니다.

unique_copy

서로 인접 한 중복 요소를 제외 하 고 대상 범위에는 원본 범위에서 요소를 복사 합니다.

upper_bound

이진 조건자에 정렬 기준 위치 지정할 수는 지정한 값 보다 큰 값은 정렬 된 범위에서 첫 번째 요소의 위치를 찾습니다.

참고 항목

참조

표준 C++ 라이브러리에서 스레드로부터의 안전성

표준 템플릿 라이브러리

기타 리소스

헤더 파일