<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 컨테이너 클래스는 다음과 같은 vector 및 list, 하지만 또한 프로그램을 정의 하는 데이터 구조 및 배열 요소는 특정 알고리즘의 요구 사항을 충족 합니다.STL 알고리즘이 보편적인 사항에 액세스 하 고 이동 하는 반복기를 통해 간접적으로 컨테이너의 요소를 위해.
STL 알고리즘은 일반적으로 해당 시작 또는 끝 위치에서 지정 된 반복기 범위 처리 합니다.참조 범위에서 범위에서 모든 포인터는 dereferenceable 이어야 합니다 및 각 범위의 시퀀스 내에서 마지막 위치에서 첫 번째 접근할 수 있다는 점에서 유효 해야 증분 여.
STL 알고리즘 작업 및 각 STL 컨테이너의 멤버 함수에서 지 원하는 동작을 확장 하 고, 예를 들어, 여러 종류의 컨테이너 개체를 동시에 작업할 수 있도록 합니다.두 접미사 알고리즘의 목적에 대 한 정보를 전달 하기 위해 사용 되었습니다.
접미사 알고리즘 함수 개체 요소의 값 보다 값은 요소 자체의 작동에 사용 됨을 나타냅니다 경우.find_if 알고리즘 찾는 값 함수 개체에 의해 지정 된 조건을 충족 하는 요소와 find 특정 값 검색 알고리즘.
알고리즘의 요소 값을 조작 뿐만 아니라 또한 수정 된 값을 대상 범위로 복사는 _copy 접미사를 나타냅니다.reverse 알고리즘의 범위 내에서 요소의 순서를 반대로 및 reverse_copy 알고리즘 또한 복사 하면 대상 범위에 있습니다.
STL 알고리즘은 자주 해당 용도 또는 요구 사항에 대 한 정보를 나타내는 그룹으로 분류 됩니다.여기에 보관 하지 않는 알고리즘 nonmodifying 요소의 값을 변경 하는 알고리즘을 수정 합니다.변형 알고리즘 요소, 하지만 해당 요소 값을 변경합니다.제거 알고리즘이 범위나 범위 복사본에서 요소를 제거할 수 있습니다.정렬 알고리즘 요소 범위에 있는 다양 한 방법으로 재배열 하 고 요소가 특정 방식으로 정렬 해야 하는 알고리즘에만 정렬 된 범위 알고리즘을 작동 합니다.
숫자 처리를 제공 하는 STL 숫자 알고리즘 자체 헤더 파일 한 <numeric>, 및 함수 개체 및 어댑터 헤더에 정의 된 <functional> 부울 값을 반환 하는 함수 개체 조건자로 알려져 있습니다.기본 이진 조건부 비교 된 operator<.일반적으로 비교 두 요소 지정 되도록 것 보다 작은 있어야 주문 되는 요소 중 하나 (둘 다 다른 보다 의미)에 해당 하는 나는 보다 작은 다른 결정 합니다.이 순서는 nonequivalent 요소 사이 발생 합니다.
함수
하나를 두 개의 인접 한 요소에 대 한 검색 하거나 지정 된 조건이 충족 합니다. |
|
반환 true 조건이 일을 각 요소에 지정 된 범위에 존재 합니다. |
|
반환 true 조건을 요소의 지정한 범위에서 한 번 이상 표시 되 면. |
|
정렬 된 범위는 지정 된 값과 같은 또는 것을 동등한 이진 조건자에 지정 된 점에서 요소 인지 테스트 합니다. |
|
요소 값을 통해 소스 시퀀스의 요소를 반복 하 고 새 위치를 앞쪽에서으로 배정 대상 범위에서 원본 범위에서 할당 합니다. |
|
요소 값을 통해 소스 시퀀스의 요소를 반복 하 고 새 위치를 뒤쪽에 배정 대상 범위에서 원본 범위에서 할당 합니다. |
|
테스트 내에서 모든 요소를 복사 합니다. true 지정 된 조건에 대 한 |
|
지정한 수의 요소를 복사합니다. |
|
범위에서 해당 값을 지정 된 값과 일치 요소를 반환 합니다. |
|
범위에서 값을 지정 된 조건이 일치 요소를 반환 합니다. |
|
요소 별로 같음 또는 등가 이진 조건자에 지정 된 점에서 두 범위를 비교 합니다. |
|
한 쌍의 순서가 지정 된 범위의 첫 번째 위치에 지정 된 요소와 두 번째 작음 또는 해당 하는 위치를 찾는 위치 점에서 동등 또는 시퀀스에서 위치를 설정 하는 데 순서 지정할 수 이진 조건부 여 요소 위치를 보다. |
|
지정한 범위에 있는 모든 요소를 같은 새 값을 할당합니다. |
|
지정 된 수의 요소 범위를 사용 하 여 특정 요소를 시작 하는 새 값을 할당 합니다. |
|
값이 지정 된 범위에서 처음 검색 된 요소의 위치를 찾습니다. |
|
범위에 지정 된 시퀀스에는 동일 하거나 동등한 이진 조건자에 지정 된 점에서 마지막 subsequence 보일 수 있습니다. |
|
대상 범위 내에서 여러 값의 처음 또는 처음 이진 술 부 지정된 된 요소 집합에 의해 지정 된 점에서 동일 여러 요소를 검색 합니다. |
|
범위에서 지정한 조건을 만족 하는 중 첫 번째 요소의 위치를 찾습니다. |
|
지정 된 조건을 만족 하지 않는 범위에서 첫 번째 요소를 반환 합니다. |
|
지정 된 함수 개체 범위 내에서 앞으로 순서로 각 요소에 적용 됩니다 및 함수 개체를 반환 합니다. |
|
함수 개체 범위에 있는 각 요소에 의해 생성 된 값을 할당 합니다. |
|
할당 함수 개체는 지정 된 수의 요소에 의해 생성 된 값 범위 이며 위치 하나 과거 할당 된 마지막 값을 반환 합니다. |
|
하나부터 위치 순서 또는 같음 조건 요소 사이의 이진 조건자에 지정 될 수 있습니다 두 번째 정렬 된 범위에 포함 된 모든 요소에 포함 되는지 여부를 테스트 합니다. |
|
위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 정렬 된 범위에 연속 된 두 개의 정렬 된 범위에서 요소를 결합 합니다. |
|
반환 true 힙 요소에 지정 된 범위를 형성 하는 경우. |
|
반환 true 는 지정한 범위의 마지막 요소까지 힙 한다면. |
|
반환 true 지정 된 범위에 있는 모든 요소는 테스트 경우 true 조건을 제공 테스트 전에 모든 요소에 대 한 false. |
|
반환 true 요소는 지정 된 범위에 정렬 된 순서 대로 되어 있으면. |
|
반환 true 요소는 지정 된 범위에 정렬 된 순서 대로 되어 있으면. |
|
지정 된 반복기 쌍으로 참조 하는 두 값을 교환 합니다. |
|
두 시퀀스 사이 하 급 결정 요소 별로 비교 두 가지. |
|
값 보다 크거나 지정 된 값을 해당 하는 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 있는 순서가 지정 된 범위의 첫 번째 요소의 위치를 찾습니다. |
|
생성 된 checked_array_iterator 다른 알고리즘에서 사용할 수 있습니다. |
|
힙의 가장 큰 첫 번째 요소입니다 및 이진 조건부에 정렬 기준을 지정할 수는 지정한 범위에서 요소 변환 합니다. |
|
두 개체를 비교 하 고 둘 중 더 큰 반환 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다. |
|
지정 된 범위의 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 처음을의 가장 큰 요소를 찾습니다. |
|
위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위를 두 개의 정렬 된 원본 범위에서 모든 요소를 결합 합니다. |
|
두 개체를 비교 하 고 둘 중에서 가장 작은 반환 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다. |
|
지정한 범위의 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 첫 번째 항목을의 최소 요소를 찾습니다. |
|
두 입력된 매개 변수를 비교 하 여 최소의 순서로 한 쌍 반환 큰. |
|
수행 작업 수행 min_element 및 max_element 한 번 호출에서 합니다. |
|
요소 별로 같음 또는 동등한 이진 조건자에 지정 된 점에서 두 범위를 비교 하 고 첫 번째 위치에 차이가 발생 하는 위치를 찾습니다. |
|
지정한 범위와 연결 된 요소를 이동 합니다. |
|
반복기를 한 요소를 다른 위치로 이동 합니다.이동 마지막 요소는 지정 된 범위에서 시작 하 고 해당 범위의 첫 번째 요소와 끝나는. |
|
어디 한 다음 이진 조건부를 지정할 수 있습니다, 있는 경우 원래 주문 다음 사전순 큰 순열에서 교체 됩니다 요소 범위에서 다시 정렬 합니다. |
|
반환 true 조건이 되 면 절대로 지정 된 범위에 있는 요소 중. |
|
파티션을 제대로 찾는 요소의 범위는 nth 요소의 시퀀스 범위에서 보다 작거나 하 고 순서를 따르는 모든 요소 앞에 있는 모든 요소는 이므로 보다 크거나. |
|
작은 요소 범위에 지정 된 숫자는 nondescending 순서 또는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 합니다. |
|
복사 요소는 원본 범위의 위치 소스 요소 정렬 하거나 대상 범위 미만 또는 다른 이진 조건부를 지정 합니다. |
|
요소 범위에 있는 두 개의 분리 된 집합에는에 만족 하지 앞 1 진 조건부 만족 요소와 분류 합니다. |
|
조건이 있는 요소 복사 true 한 대상 하는 조건에 대 한 false 다른.요소에서 지정 된 범위 여야 합니다. |
|
주어진된 조건을 만족 하지 않는 범위에서 첫 번째 요소를 반환 합니다.이러한 조건을 만족 하지 않는 그 전에 나오도록 요소 정렬 됩니다. |
|
범위에서 마지막 다음 위치에 힙 앞에서 가장 큰 요소를 제거 하 고 힙의 나머지 요소에서 새 폼. |
|
어디 한 다음 이진 조건부를 지정할 수 있습니다, 있는 경우 원래 주문 다음 사전순 큰 순열에서 교체 됩니다 요소 범위에서 다시 정렬 합니다. |
|
범위에서 이전 요소로 구성 된 기존 힙 범위 끝에 요소를 추가 합니다. |
|
시퀀스를 다시 정렬 N 요소에서 범위 중 하나에 N!임의로 선택 가능한 정렬 합니다. |
|
나머지 요소는 순서에 영향을 주지 않고 지정 된 값을 사용할 수 있는 새 범위의 끝을 반환 합니다. 지정 된 범위에서 지정 된 값을 제거 합니다. |
|
요소는 지정 된 값에서 남은 요소 및 새 대상 범위의 끝을 반환의 순서를 유지 하면서 복사 되지 않습니다 것을 제외 하 고는 소스에서 요소를 복사 대상 범위에 범위. |
|
조건자를 만족 되지 않습니다 복사 된다는, 남은 요소 및 새 대상 범위의 끝을 반환의 순서를 유지 하면서 대상 요소를 복사 원본 범위에서 범위. |
|
나머지 요소는 순서에 영향을 주지 않고 지정 된 값을 사용할 수 있는 새 범위의 끝을 반환 조건자에 지정 된 범위를 충족 하는 요소를 제거 합니다. |
|
범위에 있는 각 요소를 검사 하 고 지정 된 값과 일치 하는 경우 대체. |
|
원본 범위에서 각 요소를 검사 하 고 결과 새 대상 범위로 복사 하는 동안 지정 된 값과 일치 하면 대체. |
|
원본 범위에서 각 요소를 검사 하 고 결과 새 대상 범위로 복사 하는 동안 지정 된 조건자를 만족 시키는 경우 대체. |
|
범위에 있는 각 요소를 검사 하 고 지정 된 조건자를 만족 하는 경우 대체 합니다. |
|
범위 내에서 요소의 순서를 반대로 바꿉니다. |
|
대상 범위로 복사 하는 동안 원본 범위 내에서 요소의 순서를 반대로 바꿉니다. |
|
두 인접 한 범위에 있는 요소를 교환합니다. |
|
소스 범위 내의 두 인접 한 범위에 있는 요소를 교환 하 고 결과 대상 범위로 복사 합니다. |
|
시퀀스에 지정 된 시퀀스의 요소 요소가 같은지 또는 요소가 이진 술 부 지정 된 시퀀스의 요소에 의해 지정 된 점에서 동일 대상 범위 내에서 첫 번째 항목을 검색 합니다. |
|
첫 번째 subsequence 요소의 지정 된 수의 특정 값 이나 관계식 이진 조건부에 지정 된 대로 해당 값을 필요 하는 범위에서 검색 합니다. |
|
모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 있지만 두 번째 정렬 된 원본 범위에 정렬 된 원본 범위에 속하는 요소를 넘나들며. |
|
모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 모두 정렬 된 원본 범위에 속하는 요소를 넘나들며. |
|
모든 하나 하나 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 정렬 된 원본 범위에 속하는 요소를 넘나들며. |
|
모든 위치 정렬 기준을 이진 조건자에 지정 될 수 있습니다 단일 대상 범위에 적어도 두 개의 정렬 된 원본 범위 중 하나에 속하는 요소를 넘나들며. |
|
지정한 범위에 있는 요소는 nondescending 순서 또는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 합니다. |
|
힙 정렬 된 범위에 변환합니다. |
|
요소 범위에 있는 두 개의 분리 된 집합에 요소와 해당 요소의 상대적 순서를 유지, 만족 하지는 앞 1 진 조건부 만족 분류 합니다. |
|
지정한 범위에 있는 요소 또는 nondescending 순서는 이진 조건자에 지정 된 정렬 기준에 따라 정렬 하 고 해당 요소의 상대적 순서를 유지 합니다. |
|
요소 내용의 첫 번째에서 두 번째 및 두 번째 개체가 첫 번째 개체의 내용을 할당 한 개체의 두 형식 간에 값을 교환 합니다. |
|
요소를 다른 동일한 크기의 요소 범위를 범위를 교환합니다. |
|
Function 개체의 반환 값을 대상 범위로 복사 및 각 원본 범위에 요소 또는 요소 쌍 두 원본 범위에서 지정 된 함수 개체를 적용 합니다. |
|
지정 된 범위에서 서로 인접 한 중복 요소를 제거 합니다. |
|
서로 인접 한 중복 요소를 제외 하 고 대상 범위에는 원본 범위에서 요소를 복사 합니다. |
|
이진 조건자에 정렬 기준 위치 지정할 수는 지정한 값 보다 큰 값은 정렬 된 범위에서 첫 번째 요소의 위치를 찾습니다. |