C++ 쌍의 벡터 정렬

C Ssang Ui Begteo Jeonglyeol



C++에서는 쌍의 벡터를 표시하고 쌍의 벡터를 정렬하는 기능을 제공합니다. C++에는 '쌍'이라고 불리는 서로 매핑되는 두 개의 값과 이러한 쌍을 많이 포함하는 벡터인 '쌍의 벡터'를 보유하는 컨테이너가 있습니다. 정렬이란 요구 사항에 따라 데이터를 오름차순 또는 내림차순으로 정렬하는 것을 의미합니다. 여기서는 C++ 프로그래밍에서 쌍의 벡터를 정렬하는 방법을 알아봅니다. C++에서는 쌍의 벡터를 '오름차순' 및 '내림차순'으로 정렬할 수 있습니다. 'sort()' 메서드를 사용하면 쌍의 벡터를 쉽게 정렬할 수 있습니다. 쌍의 벡터를 정렬하기 위해 여기에 몇 가지 코드를 작성해 보겠습니다.

예시 1:

여기에 'bits/stdc++.h'라는 헤더 파일을 포함시켜 코드를 시작하겠습니다. 이 헤더 파일을 만든 후에는 필요한 모든 라이브러리가 포함되어 있으므로 더 많은 헤더 파일을 포함할 필요가 없습니다. 그런 다음 'std' 네임스페이스를 추가하고 'main()' 함수를 호출합니다.







이제 'my_vect'라는 '쌍의 벡터'를 선언하고 'int' 데이터 유형을 입력하여 이 쌍에 입력하는 데이터가 '정수' 데이터 유형이 되도록 합니다. 아래에서는 'my_arr1[]' 및 'my_arr2[]'라는 이름으로 두 개의 배열을 초기화합니다. 여기서는 이러한 배열 값으로 쌍의 첫 번째 값과 두 번째 값을 초기화합니다. 그런 다음 'for' 루프를 사용하여 이러한 값을 쌍의 벡터에 입력합니다. 여기서는 벡터 끝에 값을 삽입하는 데 도움이 되는 'push_back()' 함수를 사용합니다. 이 함수 안에는 'my_arr1'과 'my_arr2' 두 값의 쌍 개체를 구성하는 데 사용되는 'make_pair' 옵션을 배치합니다.



그런 다음 'for' 루프를 다시 활용하여 쌍의 벡터를 인쇄합니다. 여기서는 쌍 벡터의 첫 번째 값과 두 번째 값을 얻기 위해 '첫 번째' 및 '두 번째' 키워드가 추가되었습니다. 여기서 정렬하지 않고 쌍의 벡터를 인쇄합니다. 이제 'sort()' 함수를 사용하여 쌍의 벡터를 정렬합니다. 여기서는 'begin()' 및 'end()' 함수를 사용하여 쌍 벡터의 시작과 끝을 이 'sort()' 함수에 전달합니다.



정렬 후 'cout'을 활용하여 쌍의 벡터를 다시 인쇄하고 'my_vec[i]'에 첫 번째와 두 번째 키워드를 배치합니다. 이제 정렬된 쌍 벡터도 여기에 인쇄됩니다.





코드 1:

#include

네임스페이스 std 사용;

정수 메인 ( )

{

벡터 < < 너, 너 > > my_vect;

정수 my_arr1 [ ] = { 49 , 이십 , 열 다섯 , 56 } ;

정수 my_arr2 [ ] = { 37 , 이십 , 90 , 55 } ;

int num = 크기 ( my_arr1 ) / 크기 ( my_arr1 [ 0 ] ) ;

~을 위한 ( 정수 = 0 ; 나 < ~이든 나++ )

my_vect.push_back ( make_pair ( my_arr1 [ ] ,my_arr2 [ ] ) ) ;

시합 << '쌍으로 구성된 벡터를 정렬하기 전: ' << 끝;

~을 위한 ( 정수 = 0 ; 나 < ~이든 나++ )

{

시합 << my_vect [ ] .첫 번째 << ' '

<< my_vect [ ] .두번째 << 끝;

}

종류 ( my_vect.begin ( ) , my_vect.end ( ) ) ;

시합 << ' \N 쌍의 벡터를 정렬한 후: ' << 끝 ;

~을 위한 ( 정수 = 0 ; 나 < ~이든 나++ )

{

시합 << my_vect [ ] .첫 번째 << ' '

<< my_vect [ ] .두번째 << 끝;

}

반품 0 ;

}

산출:

정렬 전 쌍의 벡터가 먼저 표시됩니다. 그런 다음 이 쌍 벡터에 정렬 기술을 적용합니다. 그러면 정렬된 쌍 벡터도 여기에 표시됩니다. 쌍의 벡터가 쌍의 첫 번째 요소를 기준으로 오름차순으로 정렬되어 있음을 볼 수 있습니다.

예 2:

이 예에서는 이제 '벡터_1'이라는 '쌍의 벡터'를 생성하고 'int' 데이터 유형을 할당합니다. 이는 이러한 쌍에 입력하는 정보가 '정수' 데이터 유형임을 의미합니다. 'first_arr[]' 및 'second_arr[]'라는 이름을 가진 두 개의 배열은 다음과 같이 초기화됩니다. 여기서는 첫 번째 및 두 번째 쌍의 값에 대해 이러한 배열의 값을 초기화합니다.

다음으로 'for' 루프를 사용하여 쌍의 벡터에 이러한 값을 입력합니다. 'first_arr[]' 및 'second_arr[]' 배열에서 두 값의 쌍 개체를 생성하는 데 사용되는 'make_pair' 옵션은 항목을 삽입하는 데 도움이 되는 'push_back()' 메서드 내부에 배치됩니다. 벡터의 끝.

다음으로 'for' 루프를 다시 한 번 사용하여 쌍의 벡터를 출력합니다. 쌍 벡터의 첫 번째 및 두 번째 값을 얻으려면 '첫 번째' 및 '두 번째' 키워드가 삽입됩니다. 이 시점에서는 정렬하지 않고 쌍 벡터를 출력합니다. 이제 'sort()' 함수를 사용하여 '쌍의 벡터'를 내림차순으로 정렬합니다. 이 함수에서는 'rbegin()' 및 'rend()' 함수를 배치하여 정렬을 반대로 하고 쌍 값의 끝에서 시작합니다. 내림차순으로 정렬합니다.

정렬 후에는 “for” 루프를 한 번 더 활용하고 “cout”에 “Vector_1[i]”가 포함된 첫 번째 및 두 번째 키워드를 삽입한 후 “cout”을 사용하여 쌍의 벡터를 출력합니다. 여기에는 쌍의 정렬된 벡터도 인쇄되는 곳입니다.

코드 2:

#include

네임스페이스 std 사용;

정수 메인 ( )

{

벡터 < < 너, 너 > > 벡터_1;

정수형 first_arr [ ] = { 77 , 29 , 97 , 열 다섯 } ;

정수 second_arr [ ] = { 35 , 89 , 64 , 25 } ;

int s = 크기 ( 첫 번째_arr ) / 크기 ( 첫 번째_arr [ 0 ] ) ;

~을 위한 ( 정수 나는 = 0 ; 나 < 에스; 나++ )

vector_1.push_back ( make_pair ( 첫 번째_arr [ ] , 두 번째_arr [ ] ) ) ;

시합 << '정렬 전:' << 끝;

~을 위한 ( 정수 나는 = 0 ; 나 < 에스; 나++ ) {

시합 << 벡터_1 [ ] .첫 번째 << ' ' << 벡터_1 [ ] .두번째

<< 끝;

}

종류 ( 벡터_1.rbegin ( ) , 벡터_1.렌드 ( ) ) ;

시합 << << '정렬 후:' << 끝;

~을 위한 ( 정수 나는 = 0 ; 나 < 에스; 나++ ) {

시합 << 벡터_1 [ ] .첫 번째 << ' ' << 벡터_1 [ ] .두번째

<< 끝;

}

반품 0 ;

}

산출:

여기에는 쌍의 사전 정렬 벡터가 먼저 표시되고, 그 다음에는 정렬 프로세스가 적용된 후 여기에 표시되는 쌍의 정렬된 벡터가 표시됩니다. 보시다시피 각 쌍의 초기 요소는 쌍의 벡터가 내림차순으로 정렬되는 방식을 결정합니다.

예시 3:

여기서는 벡터 번호를 정렬하기 위해 'sortBySecElement'라는 'bool' 유형의 함수를 만듭니다. 이 함수에서는 쌍으로 구성된 두 벡터의 두 번째 값을 비교하고 숫자를 반환하는 'value1.second < value2.second'라는 조건을 배치합니다.

그런 다음 쌍의 벡터를 생성하는 다음에서 'main()'이 호출됩니다. 다음은 'new_array1[]' 및 'new_aray2[]'라는 두 개의 배열을 초기화합니다. 여기서는 이러한 배열에 쌍의 값을 삽입합니다. 다음으로 'for' 루프를 사용하여 이러한 값을 쌍의 벡터에 입력합니다. 벡터 끝에 항목을 삽입하는 데 도움이 되는 'push_back()' 메서드 내부에는 'new_array1[]' 및 'new_array2['에서 두 값의 쌍 객체를 생성하는 데 사용되는 'make_pair' 옵션이 있습니다. ]” 배열.

그런 다음 또 다른 'for' 루프를 사용하여 쌍의 벡터를 출력합니다. '첫 번째' 및 '두 번째' 키워드가 삽입되어 쌍 벡터의 첫 번째 값과 두 번째 값을 가져옵니다. 이 단계에서는 정렬이 수행되지 않으며 쌍 벡터가 출력됩니다. 이제 'sort()' 함수를 사용하여 정렬합니다. 이 경우에는 'begin()' 및 'end()' 함수를 사용하여 쌍 벡터의 시작과 끝이 'sort()' 함수에 제공됩니다. 또한 이전에 생성한 'sortBySecElement' 함수를 이 'sort()' 함수 내부에 배치하여 벡터의 두 번째 요소에서 오름차순으로 쌍의 벡터를 정렬하는 패턴을 설정합니다.

이제 'for' 루프를 다시 활용합니다. 그런 다음 첫 번째와 두 번째 키워드를 'cout'에 'new_vec[i]'와 함께 삽입하여 정렬 후 다시 쌍의 벡터를 생성합니다. 이제 오름차순으로 정렬된 쌍의 벡터가 인쇄되는 곳이기도 합니다.

코드 3:

#include

네임스페이스 std 사용;

bool sortBySecElement ( const 쌍 < 너, 너 > & 값1,

const 쌍 < 너, 너 > & 값2 )

{

반품 ( 값1.초 < 값2.초 ) ;

}

정수 메인 ( )

{

벡터 < < 너, 너 > > new_thing

정수 new_arr1 [ ] = { 3. 4 , 29 , 65 , 48 } ;

정수 new_arr2 [ ] = { 67 , 19 , 54 , 7 } ;

int 값 = 크기 ( new_arr1 ) / 크기 ( new_arr1 [ 0 ] ) ;

~을 위한 ( 정수 = 0 ; 나 < 값; 나++ )

new_vec.push_back ( make_pair ( new_arr1 [ ] ,new_arr2 [ ] ) ) ;

시합 << '정렬 전:' << 끝 ;

~을 위한 ( 정수 = 0 ; 나 < 값; 나++ )

{

시합 << new_thing [ ] .첫 번째 << ' '

<< new_thing [ ] .두번째 << 끝;

}

종류 ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

시합 << << '정렬 후:' << 끝 ;

~을 위한 ( 정수 = 0 ; 나 < 값; 나++ )

{

시합 << new_thing [ ] .첫 번째 << ' '

<< new_thing [ ] .두번째 << 끝;

}

반품 0 ;

}

산출:

여기에는 정렬된 쌍의 벡터가 표시되며, 정렬은 쌍의 두 번째 값에 따라 수행됩니다. 쌍의 두 번째 요소는 오름차순으로 저장되어 여기에 표시됩니다.

결론

이 가이드는 C++의 '쌍의 정렬 벡터'에 관한 것입니다. 우리는 정렬 없이 '쌍의 벡터'를 탐색하고 '쌍의 벡터'를 오름차순 및 내림차순으로 정렬했습니다. 우리는 C++ 프로그래밍에서 이러한 쌍의 첫 번째와 두 번째 숫자에 따라 '쌍의 벡터'를 정렬하는 예제를 통해 이를 설명했습니다. 우리는 'sort()' 메소드가 이 정렬을 수행하는 데 도움이 된다는 것을 배웠습니다.