c++++ 函數(shù)可通過三種方式返回多個值:使用結(jié)構(gòu)體:創(chuàng)建結(jié)構(gòu)體并作為返回值,使用點運算符訪問結(jié)構(gòu)體成員。使用元組:使用 std::tuple 創(chuàng)建元組,使用 std::get(tuple) 獲取元組中的值。通過多個參數(shù):將函數(shù)參數(shù)作為引用傳遞,將值作為輸出參數(shù)返回。
將多個值從 C++ 函數(shù)返回
在 C++ 編程中,函數(shù)通常返回單個值。但有時,您需要從函數(shù)返回多個值。這可以通過使用結(jié)構(gòu)體、元組或指定多個參數(shù)來實現(xiàn)。
使用結(jié)構(gòu)體返回多個值
結(jié)構(gòu)體是一種聚合類型,可用于存儲多個值。您可以創(chuàng)建自己的結(jié)構(gòu)體類型并將其作為函數(shù)返回值。例如:
struct Point {
int x;
int y;
};
Point getCoordinates() {
// 計算 x 和 y 值
return {5, 10};
}
登錄后復制
此函數(shù)返回一個類型為 Point 的結(jié)構(gòu)體,其中包含 x 和 y 坐標。您可以使用點運算符 (.) 訪問結(jié)構(gòu)體成員。
使用元組返回多個值
元組是一種輕量級容器,可存儲不同類型的值。您可以使用 std::tuple 類來創(chuàng)建元組。例如:
std::tuple<int, int> getCoordinates() {
// 計算 x 和 y 值
return std::make_tuple(5, 10);
}
登錄后復制
此函數(shù)返回一個類型為 std::tuple<int, int> 的元組,其中包含 x 和 y 坐標。您可以使用 std::get<N>(tuple) 獲取元組中特定索引的值。
通過多個參數(shù)返回多個值
您還可以通過指定多個函數(shù)參數(shù)來返回多個值。例如:
void getCoordinates(int& x, int& y) {
// 計算 x 和 y 值
x = 5;
y = 10;
}
登錄后復制
此函數(shù)通過將 x 和 y 參數(shù)作為引用傳遞,將 x 和 y 坐標作為輸出參數(shù)返回。
實戰(zhàn)案例
以下是使用元組返回多個值的實戰(zhàn)案例:
假設我們有一個獲取矩形的長和寬的函數(shù)。我們可以使用元組將這兩個值返回,如下所示:
#include <tuple>
std::tuple<int, int> getRectangleDimensions() {
// 獲取矩形的長和寬
int length = 5;
int width = 10;
// 返回一個包含長和寬的元組
return std::make_tuple(length, width);
}
登錄后復制
現(xiàn)在,我們可以使用元組來訪問矩形的長和寬:
auto dimensions = getRectangleDimensions(); int length = std::get<0>(dimensions); int width = std::get<1>(dimensions);
登錄后復制
輸出:
length: 5 width: 10
登錄后復制






