C++ 庫 - <optional>



<optional> 標頭檔案在 C++17 中引入,用於以型別安全的方式表示可能包含或可能不包含值的任何物件。optional 的一個常見用例是可能失敗的函式的返回值。

提供安全的方法來訪問包含的值,並清楚地表明何時值可能是可選的,從而提高程式碼的可讀性。

包含 <optional> 標頭檔案

要在您的 C++ 程式中包含 <optional> 標頭檔案,可以使用以下語法。

#include <optional>

<optional> 標頭檔案的函式

以下是 <optional> 標頭檔案中所有函式的列表。

序號 函式及描述
1 operator==

此函式比較兩個物件是否相等。

2 operator!=

此函式比較兩個物件是否不相等。

3 operator<

此函式比較兩個物件以檢查一個物件是否小於另一個物件。空 optional 始終小於非空 optional。

4 operator<=

此函式檢查一個物件是否小於或等於另一個物件。

5 operator>

此函式比較一個物件是否大於另一個物件。空 optional 始終小於非空 optional。

6 operator>=

此函式檢查一個物件是否大於或等於另一個物件。

7 operator<=>

此函式/運算子提供兩個物件之間的三向比較。

8 make_optional

此函式建立 optional 物件,而無需直接呼叫其建構函式。

9 std::swap

此函式專門為 std::optional 實現了 std::swap 演算法。

交換 Optional 值

在下面的示例中,我們將使用 std::swap 來交換兩個物件的 value。

#include <iostream>
#include <optional>
#include <algorithm>
int main() {
    std::optional<int> a = 1;
    std::optional<int> b = 2;
    std::swap(a, b);
    std::cout << "a: " << *a << ", b: " << *b << "\n"; 
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

a: 2, b: 1
廣告