optional实际
时间: 2024-06-12 10:10:08 浏览: 112
您的问题是:optional实际是什么意思?
optional是一种C++17中引入的类型,它表示一个值可以存在也可以不存在。如果optional对象存在值,则可以通过解引用操作符(*)或箭头操作符(->)访问该值。如果optional对象不存在值,则解引用或箭头操作符的行为是未定义的。
例如,以下代码演示了如何使用optional来表示一个可能存在也可能不存在的整数值:
```
#include <iostream>
#include <optional>
std::optional<int> get_optional_int(bool present) {
if (present) {
return 42;
} else {
return std::nullopt;
}
}
int main() {
auto opt1 = get_optional_int(true);
if (opt1) {
std::cout << "opt1 has value " << *opt1 << '\n';
} else {
std::cout << "opt1 has no value\n";
}
auto opt2 = get_optional_int(false);
if (opt2) {
std::cout << "opt2 has value " << *opt2 << '\n';
} else {
std::cout << "opt2 has no value\n";
}
}
```
输出:
```
opt1 has value 42
opt2 has no value
```
阅读全文