C++でのoptionalの使い方は何ですか。
C++17の標準では、std::optionalクラステンプレートが導入されました。これは、値をラップし、その値が存在するかどうかを示すジェネリッククラステンプレートです。
std::optionalの使い方は以下の通りです。
- std::optionalオブジェクトを作成して初期化します。
std::optional<int> opt1; // 未初始化,值不存在
std::optional<int> opt2 = 42; // 初始化为42
- 存在をチェックします。
if (opt1.has_value()) {
// 值存在
} else {
// 值不存在
}
- アクセス値:
if (opt2.has_value()) {
int value = opt2.value(); // 获取值
// 或者
int value = *opt2; // 通过解引用获取值
}
- 値を取得するかデフォルト値を取得する:
int value = opt1.value_or(0); // 如果值存在,获取值;否则返回默认值0
- オプションの値をリセットする:
opt1.reset(); // 重置值,使其不存在
std::optionalの使用は、ポインタや参照の際に発生する可能性のあるヌルポインタの例外を回避し、コードの安全性と読みやすさを向上させることができます。