C++에서 여러 값을 반환하는 방법

C Eseo Yeoleo Gabs Eul Banhwanhaneun Bangbeob



C++ 언어는 우리에게 많은 기능을 제공하고 프로그래밍을 훨씬 쉽게 만듭니다. 그러나 때로는 C++ 프로그래밍 작업을 하면서 여러 값을 반환해야 하는 경우가 있습니다. 불행하게도 C++에서는 이 기능을 쉽게 사용할 수 없습니다. C++에서 여러 값을 반환하려면 다양한 기술을 활용해야 합니다. 튜플/쌍, 포인터 및 배열을 사용하여 C++에서 여러 값을 반환할 수 있습니다. 우리는 코드와 설명과 함께 이 가이드에서 이러한 모든 기술을 철저히 연구할 것입니다.

예 1: 튜플/쌍 활용

C++에서 여러 값을 반환하는 몇 가지 실용적인 데모를 해보겠습니다. 여기서는 튜플/쌍 기술을 활용하여 코드에서 여러 값을 반환하는 데 도움을 줍니다. C++에서는 코드에 포함해야 하는 다양한 헤더 파일을 제공합니다. C++ 프로그래밍의 모든 라이브러리가 포함되어 있으므로 여기에 'bits/stdc++.h'를 포함합니다. 그런 다음 여기에 'std'라는 네임스페이스가 추가됩니다. 그런 다음 세 가지 데이터 유형, 두 개의 부동 데이터 유형 및 나머지 하나의 'char' 데이터 유형을 배치하는 'tuple' 키워드를 활용합니다. 그 아래에서는 'return' 키워드를 활용하여 튜플을 반환하는 값을 압축합니다.

이제 'pair' 메서드를 사용하여 여러 값을 반환합니다. 이 '쌍' 방법에서는 두 개의 변수 데이터 유형을 넣었고 둘 다 여기에 '부동'입니다. 변수 이름은 'float_1' 및 'float_2'입니다. 그런 다음 두 개의 값을 묶어 '쌍'으로 반환합니다. 그런 다음 여기서 'main()'을 호출한 다음 이름이 'f_1, f_2'인 두 개의 'float' 변수를 선언합니다. 여기서는 'char' 변수도 'myChar'로 선언됩니다. 그런 다음 'My_Tuple()' 함수에서 반환된 값의 압축을 풉니다.







그 아래에는 반환된 값을 쌍으로 저장합니다. 'My_Tuple' 함수에 '4.99, 8.98'을 저장하고 'My_Pair' 함수에 '6.86, 3.22'를 저장합니다. 그런 다음 내부에 기록된 모든 정보를 인쇄하는 'cout'을 활용합니다.



코드 1:



#include
사용하여 네임스페이스 성병 ;
튜플 < 뜨다 , 뜨다 , > My_Tuple ( 뜨다 f_1, 뜨다 f_2 ) {
반품 make_tuple ( f_2, f_1, '$' ) ;
}
< 뜨다 , 뜨다 > 내_쌍 ( 뜨다 파, 뜨다 f_b ) {
반품 make_pair ( f_b, f_a ) ;
}
정수 기본 ( ) {
뜨다 f_1,f_2 ;
myChar ;
묶다 ( f_1, f_2, myChar ) = My_Tuple ( 4.99 , 8.98 ) ;
new_p 페어링 = 내_쌍 ( 6.86 , 3.22 ) ;
시합 << '튜플을 통해 얻는 값: ' ;
시합 << f_1 << ' ' << f_2 << ' ' << myChar << ;
시합 << '우리가 쌍으로 얻는 값: ' ;
시합 << new_p. 첫 번째 << ' ' << new_p. 두번째 ;
반품 0 ;
}

산출 :





여기서 '튜플'과 '쌍' 방법을 활용하여 얻은 값은 다음과 같습니다. 여기서는 여러 값을 반환합니다.



예제 2: 포인터 활용

여기서는 '비교' 함수에 해당 주소와 함께 매개변수를 전달합니다. 'int' 유형의 'value_1' 및 'value_2'와 'int* g_Address, int* s_Address'를 추가합니다. 그런 다음 'value_1'이 'value_2'보다 크다는 조건을 추가하는 'if' 조건을 활용합니다. 이것이 만족되면 다음 명령문이 실행됩니다. 그렇지 않은 경우 아래에 추가된 문을 무시하고 'else' 부분으로 이동합니다. 이제 'main()'을 호출한 후 'g_value', 's_value', 'newValue1' 및 'newValue2'라는 이름을 가진 4개의 새 변수를 선언합니다.

그런 다음 숫자를 입력하라는 메시지를 인쇄한 다음 사용자로부터 두 값을 가져오는 'cin'을 배치합니다. 사용자가 입력한 값은 각각 “newValue1” 및 “newValue2” 변수에 저장됩니다. 그런 다음 이전에 생성한 'compare()' 함수를 호출하고 여기에 4개의 매개변수를 전달합니다. 그런 다음 '비교' 기능을 수행한 후 결과를 표시하며 사용자가 입력한 숫자 중 큰 숫자와 작은 숫자가 표시됩니다.

코드 2:

#include
사용하여 네임스페이스 성병 ;
무효의 비교하다 ( 정수 값_1, 정수 값_2, 정수 * g_주소, 정수 * s_주소 )
{
만약에 ( 값_1 > 값_2 ) {
* g_주소 = 값_1 ;
* s_주소 = 값_2 ;
}
또 다른 {
* g_주소 = 값_2 ;
* s_주소 = 값_1 ;
}
}
정수 기본 ( )
{
정수 g_value, s_value, newValue_1, newValue_2 ;
시합 << '두 개의 숫자를 입력하십시오: ' <> newValue_1 >> newValue_2 ;
비교하다 ( 새값_1, 새값_2, & g_값, & s_값 ) ;
시합 << ' \N 더 큰 숫자는 ' << g_값 << ' 그리고 더 작은 숫자는 '
<< s_값 ;
반품 0 ;
}

산출 :
사용자는 여기에 '86'과 '23'을 입력합니다. 'Enter'를 누르면 결과가 표시됩니다. 이런 식으로 우리는 여러 값을 얻습니다.

예 3: 어레이 활용

여기서는 두 개의 변수 'num_1'과 'num_2'를 'int' 유형으로 삽입하고 'my_arr[]'라는 배열을 삽입하는 'ComputeComparison()' 함수를 만듭니다. 그 다음에는 'num_1'이 'num_2'보다 큰지 여부를 확인하는 'if' 조건이 있습니다. true인 경우 'my_arr[0]'에는 'num_1'이 할당되고 'my_arr[1]'에는 'num_2'가 할당됩니다. 그러나 조건이 참이 아닐 경우에는 “my_arr[0]”에 “num_2”를, “my_arr[1]”에 “num_1”을 할당하는 “else” 이후의 명령문이 실행됩니다.

그런 다음 여기에서 'main()'을 호출하고 'newNum_1' 및 'newNum_2'라는 두 개의 int 변수를 더 선언합니다. 그 다음에는 크기가 '2'인 배열이 선언됩니다. 그런 다음 'cin'을 사용하여 사용자로부터 두 개의 숫자를 얻은 다음 'ComputeComparison()' 함수를 호출하고 다음 결과를 표시합니다. 따라서 여기에는 여러 값이 반환됩니다.

코드 3:

#include
사용하여 네임스페이스 성병 ;
무효의 계산비교 ( 정수 숫자_1, 정수 숫자_2, 정수 my_arr [ ] )
{

만약에 ( 숫자_1 > num_2 ) {
my_arr [ 0 ] = 숫자_1 ;
my_arr [ 1 ] = num_2 ;
}
또 다른 {
my_arr [ 0 ] = num_2 ;
my_arr [ 1 ] = 숫자_1 ;
}
}

정수 기본 ( )
{
정수 신규Num_1, 신규Num_2 ;
정수 my_arr [ 2 ] ;

시합 << '비교를 위해 두 개의 숫자를 입력하세요' <> 신규Num_1 >> 신규Num_2 ;
계산비교 ( newNum_1, newNum_2, my_arr ) ;
시합 << ' \N 더 큰 숫자는 ' << my_arr [ 0 ] << ' 그리고 '
'작은 숫자는 ' << my_arr [ 1 ] ;

반품 0 ;
}

산출 :
여기에 '54'와 '98'을 모두 입력한 다음 'Enter'를 눌러 결과를 표시합니다. 입력한 숫자 중 더 큰 숫자와 더 작은 숫자가 표시됩니다.

예제 4: 튜플 활용

여기에는 'tuple'과 'iostream'이라는 두 개의 헤더 파일이 포함되어 있습니다. 다음으로 'std' 네임스페이스를 여기에 넣습니다. 다음으로 'tuple' 키워드를 사용하고 'int'라는 두 가지 데이터 유형을 삽입합니다. 그런 다음 'findingValues()'라는 이름으로 함수를 만들고 'intValue_1' 및 'intValue2'를 매개 변수로 전달합니다.

그런 다음 'intValue_1 < intValue_2' 조건을 입력한 곳에 'if'가 배치됩니다. 그 아래에는 'return' 키워드를 활용하고 'intValue_1, intValue2_' 매개변수로 두 변수가 모두 추가된 'make_tuple()' 함수를 배치합니다. 그런 다음 'make_tuple()' 함수와 함께 'return'을 다시 배치하는 'else' 부분이 있습니다. 하지만 여기서는 'intValue_2'를 먼저 배치한 다음 'intValue1'을 배치합니다. 이제 'main()'을 호출하고 'new_value1'을 '5'로, 'new_value2'를 '28'로 초기화합니다.

다음에서는 'greater'와 'smaller'라는 이름을 가진 'int' 유형의 변수 두 개를 더 선언합니다. 그런 다음 'tie()' 함수를 배치하고 '더 작고, 더 큰' 변수를 매개변수로 전달하고 여기서 'findingValues()' 함수도 호출합니다. 그런 다음 더 큰 숫자와 더 작은 숫자의 두 값을 모두 인쇄합니다.

코드 4:

#include
#include<튜플>
사용하여 네임스페이스 성병 ;
튜플  findingValues ( 정수 정수값_1, 정수 intValue_2 )
{
만약에 ( intValue_1 < intValue_2 ) {
반품 make_tuple ( intValue_1 , intValue_2 ) ;
}
또 다른 {
반품 make_tuple ( intValue_2 , intValue_1 ) ;
}
}
정수 기본 ( )
{
정수 새로운_값1 = 5 , 새로운_값2 = 28 ;
정수 더 크다, 더 작다 ;
묶다 ( 더 작게, 더 크게 ) = 값 찾기 ( 새_값1, 새_값2 ) ;
printf ( '더 큰 숫자는 %d이고 그 수는 '
'더 작은 숫자는 %d입니다.' ,
더 크다, 더 작다 ) ;
반품 0 ;
}

산출 :

코드에 추가하는 숫자는 더 큰 값과 더 작은 값을 동시에 표시합니다. 이러한 방식으로 코드에서 여러 값을 쉽게 반환할 수 있습니다.

결론

이 가이드는 C++ 코드의 '여러 값 반환'에 관한 것입니다. 우리는 이 가이드에서 이 개념을 철저하게 탐구하고 C++ 프로그래밍에서 여러 값을 반환하는 데 도움이 되는 세 가지 기술에 대해 논의했습니다. 튜플, 페어, 포인터, 배열 기법을 활용하여 여러 개의 값이 반환된다는 점을 설명했습니다. 이러한 모든 기술은 여기에 자세히 설명되어 있습니다.