C++에서 stable_sort() 함수를 사용하는 방법

C Eseo Stable Sort Hamsuleul Sayonghaneun Bangbeob



C++에는 시퀀스의 요소를 특정 순서로 정렬하는 다양한 함수가 있습니다. sort 함수와 유사하게 stable_sort는 범위(첫 번째, 마지막)의 요소를 정렬하는 데 사용됩니다. 그들 사이의 주요 차이점은 stable_sort 동일한 값을 가진 요소의 상대적인 순서를 유지합니다.

이 세부 튜토리얼에서 우리는 stable_sort() C++에서.

C++에서 stable_sort() 함수를 사용하는 방법

C++에서는 stable_sort() 오름차순으로 요소를 정렬하고 동등한 요소에 대해 동일한 순서를 유지하는 표준 라이브러리 알고리즘입니다. 즉, 두 요소가 같으면 정렬하기 전에 컨테이너에 처음 나타나는 요소가 여전히 정렬된 목록에 먼저 나타납니다. 이 함수는 컨테이너(배열, 벡터, 연결 목록)를 반복적으로 분할하고 별도로 정렬한 다음 병합하여 정렬된 컨테이너를 가져오는 방식으로 작동합니다. 그것은 아래에 온다 <알고리즘> 헤더 파일.







사용을 위한 일반 구문 stable_sort() C++에서는 다음과 같습니다.



stable_sort ( RandomAccessIterator 우선 , RandomAccessIterator 마지막 ) ;

여기서, 첫 번째 정렬할 범위의 첫 번째 요소를 가리키는 반복자이고 마지막 정렬할 범위의 마지막 요소 다음 요소를 가리키는 반복기입니다.



그만큼 stable_sort() 함수는 감소하지 않는 순서를 사용하여 [첫 번째, 마지막] 범위의 항목을 정렬합니다. 즉, 가장 작은 요소에서 가장 큰 요소로 정렬합니다. 이 기능은 기본적으로 다음을 통해 항목을 비교합니다. 보다 작음 연산자(<).





예 1

아래 예제 코드를 고려하십시오. 이 코드에서 우리는 벡터 목록 일부 값으로 초기화했습니다. 다음으로 우리는 stable_sort() 주어진 벡터의 값을 오름차순으로 정렬합니다. 정렬되지 않은 벡터와 정렬된 벡터는 범위 기반 루프를 사용하여 콘솔에 인쇄됩니다.

#include

#include <벡터>

#include <알고리즘>

네임스페이스 표준 사용 ;



정수 기본 ( )

{

벡터 < 정수 > 목록 = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

쿠우트 << '정렬 전 숫자: ' ;

각각 ( 목록. 시작하다 ( ) , 목록. ( ) , [ ] ( 정수 엑스 ) {

쿠우트 << 엑스 << ' ' ;

} ) ;

stable_sort ( 목록. 시작하다 ( ) , 목록. ( ) ) ;

쿠우트 << ' \N 정렬 후 숫자: ' ;

각각 ( 목록. 시작하다 ( ) , 목록. ( ) , [ ] ( 정수 엑스 ) {

쿠우트 << 엑스 << ' ' ;

} ) ;



반품 0 ;

}




예 2

아래 주어진 예에서는 정수 배열을 만들고 일부 값으로 초기화했습니다. 그러면 기본적으로 stable_sort() 요소를 오름차순으로 정렬합니다.

#include

#include <알고리즘>

네임스페이스 표준 사용 ;

정수 기본 ( )

{

정수 정렬 [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , , 4 , 22 , 0 } ;

정수 N = 크기 ( 정렬 ) / 크기 ( 정렬 [ 0 ] ) ;

쿠우트 << '원래 배열은 다음과 같습니다. \N ' ;

~을 위한 ( 정수 = 0 ; < N ; ++ ) {

쿠우트 << 정렬 [ ] << ' ' ;

}

stable_sort ( 정렬 , 정렬 + N ) ;

쿠우트 << ' \N 정렬 후 배열은 다음과 같습니다. \N ' ;

~을 위한 ( 정수 = 0 ; < N ; ++ ) {

쿠우트 << 정렬 [ ] << ' ' ;

}

반품 0 ;

}

예 3

그만큼 stable_sort 세 번째 매개변수를 사용하여 요소 정렬 순서를 지정합니다. 아래 예에서는 다음을 사용했습니다. 보다 큰() 기능 stable_sort() 내림차순으로 배열의 요소를 정렬하려면

#include

#include <알고리즘>

네임스페이스 표준 사용 ;

정수 기본 ( )

{

정수 정렬 [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , , 4 , 22 , 0 } ;

정수 N = 크기 ( 정렬 ) / 크기 ( 정렬 [ 0 ] ) ;

쿠우트 << '원래 배열: \N ' ;

~을 위한 ( 정수 = 0 ; < N ; ++ ) {

쿠우트 << 정렬 [ ] << ' ' ;

}

stable_sort ( 정렬 , 정렬 + N , 보다 큰 < 정수 > ( ) ) ;

쿠우트 << ' \N 정렬 후 배열 : \N ' ;

~을 위한 ( 정수 = 0 ; < N ; ++ ) {

쿠우트 << 정렬 [ ] << ' ' ;

}

반품 0 ;

}

결론

그만큼 stable_sort() C++의 함수는 동일한 값을 가진 컨테이너에서 요소의 상대 순서를 유지하면서 감소하지 않는 순서로 컨테이너에서 요소를 정렬하는 데 사용되는 표준 라이브러리 알고리즘입니다. 배열, 벡터 및 연결 목록과 같은 다양한 컨테이너와 함께 사용할 수 있습니다. 또한 요소 정렬 순서를 지정하기 위해 세 번째 매개변수를 사용합니다.