Cách trả về nhiều giá trị trong C++

Cach Tra Ve Nhieu Gia Tri Trong C



Ngôn ngữ C++ cung cấp cho chúng ta nhiều tính năng và giúp việc lập trình của chúng ta dễ dàng hơn nhiều. Nhưng đôi khi, chúng ta cần trả về nhiều giá trị khi làm việc với lập trình C++. Thật không may, C++ không hỗ trợ chúng tôi với tính năng này. Để trả về nhiều giá trị trong C++, chúng ta phải sử dụng các kỹ thuật khác nhau. Chúng ta có thể trả về nhiều giá trị trong C++ bằng cách sử dụng bộ/cặp, con trỏ và mảng. Chúng tôi sẽ nghiên cứu kỹ lưỡng tất cả các kỹ thuật này trong hướng dẫn này cùng với các mã và giải thích.

Ví dụ 1: Sử dụng Bộ/Cặp

Hãy thực hiện một số minh họa thực tế để trả về nhiều giá trị trong C++. Ở đây, chúng tôi sử dụng kỹ thuật bộ/cặp để giúp trả về nhiều giá trị trong mã của mình. C++ cung cấp nhiều tệp tiêu đề khác nhau mà chúng tôi phải đưa vào mã của mình. Chúng tôi đưa “bits/stdc++.h” vào đây vì nó chứa tất cả các thư viện của lập trình C++. Sau đó, không gian tên được thêm vào đây là “std”. Sau đó, chúng tôi sử dụng từ khóa “tuple”, trong đó chúng tôi đặt ba loại dữ liệu, hai loại dữ liệu float và một loại dữ liệu “char” còn lại. Bên dưới nó, chúng tôi sử dụng từ khóa “return” để đóng gói các giá trị nhằm trả về một bộ dữ liệu.

Bây giờ, chúng tôi sử dụng phương thức “cặp” để trả về nhiều giá trị. Trong phương thức “cặp” này, chúng tôi đặt hai kiểu dữ liệu của biến và cả hai đều là “float” ở đây. Các biến được đặt tên là “float_1” và “float_2”. Sau đó, chúng tôi đóng gói hai giá trị để trở về “cặp”. Sau đó, chúng ta gọi “main()” ở đây và khai báo hai biến “float” với tên “f_1, f_2”. Biến “char” cũng được khai báo ở đây là “myChar”. Sau đó, chúng tôi giải nén các giá trị được hàm “My_Tuple()” trả về.







Dưới đây, chúng tôi lưu trữ các giá trị trả về theo cặp. Chúng tôi lưu trữ ”4,99, 8,98” trong hàm “My_Tuple” và “6,86, 3,22” trong hàm “My_Pair”. Sau đó, chúng tôi sử dụng “cout” để in tất cả thông tin được viết bên trong nó.



Mã 1:



#include
sử dụng không gian tên tiêu chuẩn ;
bộ đồ < trôi nổi , trôi nổi , ký tự > My_Tuple ( trôi nổi f_1, trôi nổi f_2 ) {
trở lại make_tuple ( f_2, f_1, '$' ) ;
}
đôi < trôi nổi , trôi nổi > My_Pair ( trôi nổi f_a, trôi nổi f_b ) {
trở lại make_pair ( f_b, f_a ) ;
}
int chủ yếu ( ) {
trôi nổi f_1,f_2 ;
ký tự myChar ;
cà vạt ( f_1, f_2, myChar ) = My_Tuple ( 4,99 , 8,98 ) ;
cặp new_p = My_Pair ( 6,86 , 3,22 ) ;
cout << 'Các giá trị chúng tôi nhận được theo bộ dữ liệu :' ;
cout << f_1 << ' ' << f_2 << ' ' << myChar << kết thúc ;
cout << 'Các giá trị chúng tôi nhận được theo Cặp: ' ;
cout << mới_p. Đầu tiên << ' ' << mới_p. thứ hai ;
trở lại 0 ;
}

đầu ra :





Các giá trị mà chúng tôi nhận được ở đây bằng cách sử dụng phương thức “bộ dữ liệu” và “cặp” được hiển thị như sau. Lưu ý rằng nó trả về nhiều giá trị ở đây.



Ví dụ 2: Sử dụng con trỏ

Chúng tôi chuyển các tham số cùng với địa chỉ của chúng trong hàm “so sánh” tại đây. Chúng ta thêm “value_1” và “value_2” của loại “int” và “int* g_Address, int* s_Address”. Sau đó, chúng tôi sử dụng điều kiện “if”, trong đó chúng tôi thêm điều kiện rằng “value_1” lớn hơn “value_2”. Nếu điều này được thỏa mãn, câu lệnh sau sẽ được thực thi. Nếu không, nó sẽ bỏ qua câu lệnh được thêm vào bên dưới phần này và chuyển sang phần “khác”. Bây giờ, sau khi gọi “main()”, chúng ta khai báo bốn biến mới có tên “g_value”, “s_value”, “newValue1” và “newValue2”.

Sau đó, chúng tôi in một thông báo để nhập các số và sau đó đặt “cin” để nhận hai giá trị từ người dùng. Các giá trị mà người dùng nhập vào sẽ được lưu lần lượt trong các biến “newValue1” và “newValue2”. Sau đó, chúng ta gọi hàm “compare()” mà chúng ta đã tạo trước đó và truyền bốn tham số vào đó. Sau đó, chúng tôi hiển thị kết quả sau khi thực hiện chức năng “so sánh” và nó hiển thị số lớn hơn và số nhỏ hơn từ những số mà người dùng nhập vào.

Mã 2:

#include
sử dụng không gian tên tiêu chuẩn ;
trống rỗng so sánh ( int giá trị_1, int giá trị_2, int * g_Địa chỉ, int * s_địa chỉ )
{
nếu như ( giá trị_1 > giá trị_2 ) {
* g_địa chỉ = giá trị_1 ;
* s_địa chỉ = giá trị_2 ;
}
khác {
* g_địa chỉ = giá trị_2 ;
* s_địa chỉ = giá trị_1 ;
}
}
int chủ yếu ( )
{
int g_value, s_value, newValue_1, newValue_2 ;
cout << 'Xin vui lòng nhập hai số:' <> giá trị mới_1 >> giá trị mới_2 ;
so sánh ( giá trị mới_1, giá trị mới_2, & g_giá trị, & s_giá trị ) ;
cout << ' \N Số lớn hơn là ' << g_giá trị << ' và số nhỏ hơn là '
<< s_giá trị ;
trở lại 0 ;
}

đầu ra :
Người dùng nhập “86” và “23” tại đây. Sau khi nhấn “Enter”, nó sẽ hiển thị kết quả. Bằng cách này, chúng tôi nhận được nhiều giá trị.

Ví dụ 3: Sử dụng mảng

Chúng ta tạo hàm “ComputeComparison()” ở đây, trong đó chúng ta chèn hai biến “num_1” và “num_2”, làm kiểu “int” và cũng là một mảng có tên “my_arr[]”. Sau đó, chúng ta có điều kiện “if” để kiểm tra xem “num_1” có lớn hơn “num_2” hay không. Nếu đúng thì “num_1” được gán cho “my_arr[0]” và “num_2” được gán cho “my_arr[1]”. Nhưng nếu điều kiện không đúng, các câu lệnh sau “else” sẽ được thực thi trong đó chúng ta gán “num_2” cho “my_arr[0]” và “num_1” cho “my_arr[1]”.

Sau đó, chúng ta gọi “main()” ở đây và khai báo thêm hai biến int: “newNum_1” và “newNum_2”. Sau đó, một mảng có kích thước “2” được khai báo. Sau đó, chúng tôi nhận được hai số từ người dùng với sự trợ giúp của “cin”, sau đó gọi hàm “ComputeComparison()” và hiển thị kết quả sau. Vì vậy, nó trả về nhiều giá trị ở đây.

Mã 3:

#include
sử dụng không gian tên tiêu chuẩn ;
trống rỗng Tính toánSo sánh ( int số_1, int số_2, int my_arr [ ] )
{

nếu như ( số_1 > số_2 ) {
my_arr [ 0 ] = số_1 ;
my_arr [ 1 ] = số_2 ;
}
khác {
my_arr [ 0 ] = số_2 ;
my_arr [ 1 ] = số_1 ;
}
}

int chủ yếu ( )
{
int số mới_1, số mới_2 ;
int my_arr [ 2 ] ;

cout << 'Xin vui lòng nhập hai số để so sánh' <> mớiNum_1 >> mớiNum_2 ;
Tính toánSo sánh ( newNum_1, newNum_2, my_arr ) ;
cout << ' \N Số lớn hơn là ' << my_arr [ 0 ] << ' và '
'số nhỏ hơn là' << my_arr [ 1 ] ;

trở lại 0 ;
}

đầu ra :
Chúng ta gõ cả “54” và “98” vào đây rồi nhấn “Enter” để hiển thị kết quả. Nó hiển thị số lớn hơn cũng như số nhỏ hơn từ những số mà chúng tôi đã nhập.

Ví dụ 4: Sử dụng Tuples

Hai tệp tiêu đề được bao gồm ở đây: “tuple” và “iostream”. Tiếp theo, không gian tên “std” được đặt ở đây. Tiếp theo, chúng ta sử dụng từ khóa “tuple” và chèn hai kiểu dữ liệu là “int”. Sau đó, chúng ta tạo một hàm có tên “findingValues()” và chuyển “intValue_1” và “intValue2” làm tham số.

Sau đó, “if” được đặt ở nơi chúng ta nhập điều kiện “intValue_1 < intValue_2”. Bên dưới nó, chúng tôi sử dụng từ khóa “return” và đặt hàm “make_tuple()” trong đó cả hai biến được thêm dưới dạng tham số “intValue_1, intValue2_”. Sau đó, chúng ta có phần “other”, trong đó chúng ta đặt “return” một lần nữa cùng với hàm “make_tuple()”. Nhưng ở đây, chúng ta đặt “intValue_2” trước và sau đó là “intValue1”. Bây giờ, chúng ta gọi “main()” và khởi tạo “new_value1” bằng “5” và “new_value2” bằng “28”.

Sau đây, chúng ta khai báo thêm hai biến kiểu “int” với tên “lớn hơn” và “nhỏ hơn”. Sau đó, chúng ta đặt hàm “tie()” và chuyển các biến “nhỏ hơn, lớn hơn” làm tham số và cũng gọi hàm “findingValues()” tại đây. Sau đó, chúng ta in cả hai giá trị: số lớn hơn và số nhỏ hơn.

Mã 4:

#include
#include
sử dụng không gian tên tiêu chuẩn ;
tuple  tìm kiếm các giá trị ( int intValue_1, int intValue_2 )
{
nếu như ( intValue_1 < intValue_2 ) {
trở lại make_tuple ( intValue_1, intValue_2 ) ;
}
khác {
trở lại make_tuple ( intValue_2 , intValue_1 ) ;
}
}
int chủ yếu ( )
{
int new_value1 = 5 , new_value2 = 28 ;
int lớn hơn, nhỏ hơn ;
cà vạt ( nhỏ hơn, lớn hơn ) = tìm kiếm giá trị ( new_value1, new_value2 ) ;
printf ( 'Số lớn hơn là %d và '
'số nhỏ hơn là %d' ,
lớn hơn, nhỏ hơn ) ;
trở lại 0 ;
}

đầu ra :

Các số mà chúng tôi thêm vào mã của mình đồng thời hiển thị các giá trị lớn hơn và nhỏ hơn. Bằng cách này, chúng ta có thể dễ dàng trả về nhiều giá trị trong mã của mình.

Phần kết luận

Hướng dẫn này nói về “trả về nhiều giá trị” trong mã C++. Chúng tôi đã khám phá kỹ lưỡng khái niệm này trong hướng dẫn này và thảo luận về ba kỹ thuật hỗ trợ trả về nhiều giá trị trong lập trình C++. Chúng tôi đã giải thích rằng nhiều giá trị được trả về bằng cách sử dụng các kỹ thuật bộ, cặp, con trỏ và mảng. Tất cả những kỹ thuật này được mô tả kỹ lưỡng ở đây.