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