다음을 통해 공유


알고리즘

알고리즘에는 표준 템플릿 라이브러리의 기본적인 부분입니다.알고리즘은 컨테이너 자체가 아니라 오히려 반복기를 작동 하지 않습니다.따라서 동일한 알고리즘 대부분 그렇지 않으면 의해 모든 STL 컨테이너에 사용할 수 있습니다.이 섹션의 규칙과 용어 STL 알고리즘에 대해 설명합니다.

설명

몇 가지 간단한 문구 사용 하는 알고리즘 템플릿 함수에 대 한 설명.

  • 구의 "범위에서 [A, B)" 시작 0 개 이상의 불연속 값의 순서를 의미 합니다. A 를 포함 하지 않습니다 B.유효한 범위인 경우에만 B 에서 연결할 수 있습니다 A; 저장할 수 있습니다 A 개체에서 N (N = A), 개체를 0 번 이상 증가 (+ +N)와 같은지 비교할 개체 B 그 수가 증가 한 후 (N B =).

  • 구의 "각 N 범위에서 [A, B)" 즉, N 값으로 시작 A 값이 될 때까지 0 번 이상 증가 하 고 B.이런 N = B 범위에 있지 않습니다.

  • 구 "가장 낮은 값을 N 범위에 [A, B)는 X" 조건 즉 X 각각에 대 한 결정 됩니다 N 범위에 [A, B) 조건까지 X 충족 될.

  • 구 "가장 높은 값을 N 범위에서 [A, B)는 X 즉, X 각에 따라 결정 됩니다 N 범위에서 [A, B).저장의 K 복사본을 N 때마다 조건 X 충족 됩니다.이러한 저장소에서 발생 하는 경우의 최종 값은 함수를 대체 N, 어떤은 B, 값을 가진 K.그러나 양방향 또는 임의 액세스 반복기에 대해 또한는 의미도 있습니다 N 범위의 가장 높은 값으로 시작 하 고로 조건까지 감소 됩니다 X 충족 됩니다.

  • 같은 식 X - Y, 어디 XY 임의 액세스 반복기 이외의 다른 반복기, 수학적 의미에서 만들어진 것입니다.연산자 함수가 반드시 평가 하지 않습니다- 이러한 값을 확인 해야 하는 경우.또한 같은 식에 대해 마찬가지입니다 X + NX - N, 어디 N 는 integer 형식입니다.

몇 가지 알고리즘을 확인 pairwise, 등을 비교 하는 조건자를 사용 하 여 operator==, 양보 하는 bool 결과입니다.조건자 함수의 operator==, 또는 대체에 대 한 피연산자 중 하나가 변경 해야 없습니다.동일을 산출 해야 합니다 bool 평가 하 고 사본을 피연산자 피연산자에 대 한 대체 되는 경우 동일한 결과 산출 해야 될 때마다 발생 합니다.

몇 가지 알고리즘을 확인 엄격한 취약 한 쌍의 시퀀스 요소에 순서를 부여 해야 하는 조건자를 사용 합니다.For the predicate pr(X, Y):

  • 엄격 하 게 즉, pr(X, X)은 false입니다.

  • 취약 한 뜻은 XY 주문에 해당 하는 경우!pr(X, Y) && !pr(Y, X) (X == Y does not need to be defined).

  • 주문 의미 pr(X, Y) & & pr(Y, Z) implies pr(X, Z).

이러한 알고리즘 중 일부는 조건부 암시적 사용 X < Y.일반적으로 엄격 하 게 약한 주문 요구 사항에 부합 하는 다른 조건자입니다 X > Y, less(X, Y), and greater(X, Y).그러나 참고는 조건자를 X < = YX > = Y 이 요구 사항을 충족 하지 않습니다.

반복기를에서 지정 된 요소의 시퀀스를 [First, Last) 운영자에 의해 정렬 된 시퀀스입니다**<** if, for each N [0에서Last - First) 및 각 M (N 범위Last - First) 조건자!(*(First + M) < *(First + N)) is true.(요소를 오름차순으로 정렬 됨 note) 조건자 함수의 연산자 <, 또는 대체에 대 한 피연산자 중 하나가 변경 해야 없습니다.동일을 산출 해야 합니다 bool 평가 하 고 사본을 피연산자 피연산자에 대 한 대체 되는 경우 동일한 결과 산출 해야 될 때마다 발생 합니다.또한 엄격한 약한 여 비교 피연산자의 순서를 부과 합니다.

반복기를에서 지정 된 요소의 시퀀스를 [First, Last)에서 힙 정렬 된 연산자 < 각 if N [1,Last - First) 조건자!(*First < *(First + N)) is true.(첫 번째 요소는 가장 큰 값입니다.) 그 내부 구조 템플릿 함수에만 알려져 make_heap, pop_heap, 및 push_heap.조건자 함수의 순서가 정해진된 시퀀스와 마찬가지로 연산자 <, 또는 대체를 위한 피연산자 중 하나가 변경 해야 하지 하 고 엄격한 약한 여 비교 피연산자의 순서를 적용 합니다.동일을 산출 해야 합니다 bool 평가 하 고 사본을 피연산자 피연산자에 대 한 대체 되는 경우 동일한 결과 산출 해야 될 때마다 발생 합니다.

STL 알고리즘에는 <algorithm><numeric> 헤더 파일입니다.

참고 항목

참조

표준 템플릿 라이브러리

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