optional如何使用
时间: 2023-06-12 11:05:49 浏览: 49
在许多编程语言中,optional 是一种类型,用于表示一个值可以是存在的,也可以不存在。它通常与函数返回值一起使用,以便函数可以返回一个值或者没有值。
在 C++ 中,可以使用 std::optional 类型来定义一个 optional 变量。例如:
```c++
#include <optional>
#include <iostream>
std::optional<int> get_optional_value(bool flag) {
if (flag) {
return 10;
} else {
return std::nullopt;
}
}
int main() {
auto value1 = get_optional_value(true);
if (value1.has_value()) {
std::cout << "Value1: " << value1.value() << std::endl;
} else {
std::cout << "Value1 is empty" << std::endl;
}
auto value2 = get_optional_value(false);
if (value2.has_value()) {
std::cout << "Value2: " << value2.value() << std::endl;
} else {
std::cout << "Value2 is empty" << std::endl;
}
return 0;
}
```
在上面的代码中,get_optional_value 函数根据传入的 flag 参数返回一个 optional<int> 类型的值。如果 flag 为 true,则返回一个值为 10 的 optional 变量;否则返回一个空的 optional 变量。
在 main 函数中,我们调用 get_optional_value 函数并将返回值赋值给 value1 和 value2 两个变量。我们可以使用 has_value 函数来检查 optional 变量是否有值,如果有值,则可以使用 value 函数来获取该值。如果没有值,则可以使用 std::nullopt 来表示空值。
总之,optional 类型是一种方便的类型,可用于表示一个值可能存在或不存在的情况。