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
广告