Sådan returneres flere værdier i C++

Sadan Returneres Flere Vaerdier I C



C++-sproget giver os mange funktioner og gør vores programmering meget lettere. Men nogle gange skal vi returnere flere værdier, mens vi arbejder med C++ programmering. Desværre letter C++ os ikke med denne funktion. For at returnere flere værdier i C++, skal vi bruge de forskellige teknikker. Vi kan returnere flere værdier i C++ ved hjælp af tupler/par, pointere og arrays. Vi vil grundigt studere alle disse teknikker i denne vejledning sammen med koder og forklaringer.

Eksempel 1: Brug af Tuples/Pars

Lad os lave en praktisk demonstration for at returnere flere værdier i C++. Her bruger vi tuples/pairs-teknikkerne til at hjælpe med at returnere flere værdier i vores kode. C++ giver forskellige header-filer, som vi skal inkludere i vores kode. Vi inkluderer 'bits/stdc++.h' her, da det indeholder alle biblioteker i C++-programmeringen. Derefter tilføjes navnerummet her, som er 'std'. Efter dette bruger vi nøgleordet 'tuple', hvori vi placerer tre datatyper, to flydende datatyper og den resterende 'char' datatype. Under det bruger vi nøgleordet 'return' til at pakke værdierne for at returnere en tuple.

Nu bruger vi 'par'-metoden til at returnere flere værdier. I denne 'par'-metode sætter vi to variables datatyper, og begge er 'flydende' her. Variablerne hedder 'float_1' og 'float_2'. Derefter pakker vi to værdier for at vende tilbage til 'parrene'. Herefter kalder vi 'main()' her og erklærer derefter to 'float'-variabler med navnet 'f_1, f_2'. Variablen 'char' er også erklæret her som 'myChar'. Derefter pakker vi de værdier ud, der returneres af funktionen 'My_Tuple()'.







Under dette gemmer vi de returnerede værdier i par. Vi gemmer '4.99, 8.98' i 'My_Tuple'-funktionen og '6.86, 3.22' i 'My_Pair'-funktionen. Derefter bruger vi 'cout', der udskriver al den information, der er skrevet inde i den.



Kode 1:



#include
ved brug af navneområde std ;
tupel < flyde , flyde , char > Min_Tupel ( flyde f_1, flyde f_2 ) {
Vend tilbage make_tuple ( f_2, f_1, '$' ) ;
}
par < flyde , flyde > Mit_par ( flyde f_a, flyde f_b ) {
Vend tilbage make_pair ( f_b, f_a ) ;
}
int vigtigste ( ) {
flyde f_1,f_2 ;
char myChar ;
binde ( f_1, f_2, myChar ) = My_Tuple ( 4,99 , 8,98 ) ;
par new_p = Mit_par ( 6,86 , 3.22 ) ;
cout << 'Værdier vi får af tupler:' ;
cout << f_1 << ' ' << f_2 << ' ' << myChar << endl ;
cout << 'Værdier vi får af par:' ;
cout << ny_s. først << ' ' << ny_s. anden ;
Vend tilbage 0 ;
}

Produktion :





De værdier, som vi får her ved at bruge 'tuples' og 'pair'-metoden, vises i det følgende. Bemærk, at det returnerer flere værdier her.



Eksempel 2: Brug af pointere

Vi sender parametrene sammen med deres adresser i funktionen 'sammenlign' her. Vi tilføjer 'værdi_1' og 'værdi_2' af typen 'int' og 'int* g_Address, int* s_Address'. Efter dette bruger vi 'hvis'-betingelsen, hvor vi tilføjer en betingelse om, at 'værdi_1' er større end 'værdi_2'. Hvis dette er opfyldt, udføres følgende erklæring. Hvis den ikke er det, ignorerer den erklæringen, der er tilføjet under dette, og bevæger sig mod 'andet'-delen. Nu, efter at have påkaldt 'main()', erklærer vi fire nye variable med navnene 'g_value', 's_value', 'newValue1' og 'newValue2'.

Herefter udskriver vi en besked om at indtaste tallene og placerer derefter 'cin', som får to værdier fra brugeren. De værdier, som brugeren indtaster, gemmes i henholdsvis 'newValue1' og 'newValue2' variablerne. Efter dette kalder vi funktionen 'compare()', som vi tidligere har oprettet, og sender fire parametre ind i den. Derefter viser vi resultatet efter at have udført funktionen 'sammenlign', og det viser det større tal og det mindre tal fra de tal, som brugeren indtaster.

Kode 2:

#include
ved brug af navneområde std ;
ugyldig sammenligne ( int værdi_1, int værdi_2, int * g_adresse, int * s_Adresse )
{
hvis ( værdi_1 > værdi_2 ) {
* g_Adresse = værdi_1 ;
* s_Adresse = værdi_2 ;
}
andet {
* g_Adresse = værdi_2 ;
* s_Adresse = værdi_1 ;
}
}
int vigtigste ( )
{
int g_værdi, s_værdi, newValue_1, newValue_2 ;
cout << 'Indtast venligst to tal: ' <> nyVærdi_1 >> nyVærdi_2 ;
sammenligne ( newValue_1, newValue_2, & g_værdi, & s_værdi ) ;
cout << ' \n Det største antal er ' << g_værdi << ' og det mindre tal er '
<< s_værdi ;
Vend tilbage 0 ;
}

Produktion :
Brugeren indtaster '86' og '23' her. Efter at have trykket på 'Enter', vises resultatet. På denne måde får vi flere værdier.

Eksempel 3: Brug af Array

Vi opretter funktionen 'ComputeComparison()' her, hvori vi indsætter to variable, 'num_1' og 'num_2', som typen 'int' og også et array med navnet 'my_arr[]'. Efter dette har vi 'hvis'-betingelsen, som kontrollerer, om 'num_1' er større end 'num_2' eller ej. Hvis det er sandt, tildeles 'num_1' til 'min_arr[0]', og 'num_2' er tildelt 'min_arr[1]'. Men hvis betingelsen ikke er sand, udføres udsagn efter 'else', hvor vi tildeler 'num_2' til 'min_arr[0]' og 'num_1' til 'min_arr[1]'.

Efter dette kalder vi 'main()' her og erklærer derefter yderligere to int-variabler: 'newNum_1' og 'newNum_2'. Herefter erklæres et array af størrelse '2'. Herefter får vi to tal fra brugeren ved hjælp af 'cin' og kalder derefter funktionen 'ComputeComparison()' og viser følgende resultat. Så det returnerer flere værdier her.

Kode 3:

#include
ved brug af navneområde std ;
ugyldig ComputeComparison ( int num_1, int num_2, int min_arr [ ] )
{

hvis ( nummer_1 > nummer_2 ) {
min_arr [ 0 ] = nummer_1 ;
min_arr [ 1 ] = nummer_2 ;
}
andet {
min_arr [ 0 ] = nummer_2 ;
min_arr [ 1 ] = nummer_1 ;
}
}

int vigtigste ( )
{
int nytNum_1, nytNum_2 ;
int min_arr [ 2 ] ;

cout << 'Indtast venligst to tal til sammenligning' <> nytNum_1 >> nytNum_2 ;
ComputeComparison ( newNum_1, newNum_2, my_arr ) ;
cout << ' \n Det største antal er ' << min_arr [ 0 ] << ' og '
'mindre tal er' << min_arr [ 1 ] ;

Vend tilbage 0 ;
}

Produktion :
Vi skriver både '54' og '98' her og trykker derefter på 'Enter' for at få vist resultatet. Det viser de større såvel som de mindre tal fra de tal, vi indtastede.

Eksempel 4: Brug af Tuples

To header-filer er inkluderet her: 'tuple' og 'iostream'. Dernæst sættes 'std'-navnerummet her. Dernæst bruger vi nøgleordet 'tuple' og indsætter to datatyper, som er 'int'. Herefter opretter vi en funktion med navnet 'findingValues()' og sender 'intValue_1' og 'intValue2' som sine parametre.

Derefter placeres 'hvis' hvor vi skriver betingelsen 'intValue_1 < intValue_2'. Under det bruger vi nøgleordet 'return' og placerer funktionen 'make_tuple()', hvori begge variabler tilføjes som parameteren 'intValue_1, intValue2_'. Så har vi 'else'-delen, hvor vi placerer 'retur' igen sammen med 'make_tuple()'-funktionen. Men her placerer vi 'intValue_2' først og derefter 'intValue1'. Nu kalder vi 'main()' og initialiserer 'new_value1' med '5' og 'new_value2' med '28'.

I det følgende erklærer vi yderligere to variable af typen 'int' med navnene 'større' og 'mindre'. Derefter placerer vi 'tie()'-funktionen og sender 'mindre, større' variabler som parameteren og kalder også 'findingValues()'-funktionen her. Herefter udskriver vi begge værdier: de større og de mindre tal.

Kode 4:

#include
#inkluder
ved brug af navneområde std ;
tuple  findingValues ( int intValue_1, int intValue_2 )
{
hvis ( intValue_1 < intValue_2 ) {
Vend tilbage make_tuple ( intValue_1 , intValue_2 ) ;
}
andet {
Vend tilbage make_tuple ( intValue_2 , intValue_1 ) ;
}
}
int vigtigste ( )
{
int ny_værdi1 = 5 , ny_værdi2 = 28 ;
int større, mindre ;
binde ( mindre, større ) = finde værdier ( ny_værdi1, ny_værdi2 ) ;
printf ( 'Det største tal er %d og '
'mindre tal er %d' ,
større, mindre ) ;
Vend tilbage 0 ;
}

Produktion :

De tal, som vi tilføjer til vores kode, viser samtidig de større og mindre værdier. På denne måde kan vi nemt returnere flere værdier i vores kode.

Konklusion

Denne guide handler om de 'returnerende flere værdier' i C++-koder. Vi undersøgte dette begreb grundigt i denne vejledning og diskuterede tre teknikker, der hjælper med at returnere flere værdier i C++-programmeringen. Vi forklarede, at flere værdier returneres ved at bruge tupler, par, pointere og array-teknikker. Alle disse teknikker er grundigt beskrevet her.