c++中optional的用法是什么

c++
832
2024/3/15 14:47:22
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++17标准中引入了std::optional类模板,它是一个泛型类模板,可以用来包装一个值,表示该值可能存在,也可能不存在。

std::optional的用法如下:

  1. 创建一个std::optional对象并初始化:
std::optional<int> opt1; // 未初始化,值不存在
std::optional<int> opt2 = 42; // 初始化为42
  1. 检查值是否存在:
if (opt1.has_value()) {
    // 值存在
} else {
    // 值不存在
}
  1. 访问值:
if (opt2.has_value()) {
    int value = opt2.value(); // 获取值
    // 或者
    int value = *opt2; // 通过解引用获取值
}
  1. 获取值或默认值:
int value = opt1.value_or(0); // 如果值存在,获取值;否则返回默认值0
  1. 重置optional对象的值:
opt1.reset(); // 重置值,使其不存在

std::optional的使用可以避免使用指针或引用时可能存在的空指针异常,提高了代码的安全性和可读性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++无法解析外部符号如何解决