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