在 C++ 中,可以使用 std::optional
模板類來優雅地處理 “option” 類型
首先,確保你的編譯器支持 C++17 或更高版本。然后,包
下面是一個簡單的示例,展示了如何使用 std::optional
:
#include<iostream>
#include<optional>
std::optional<int> find_value(int arr[], int size, int target) {
for (int i = 0; i< size; ++i) {
if (arr[i] == target) {
return target; // 返回找到的值
}
}
return std::nullopt; // 沒有找到值時返回空 optional
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int target = 3;
auto result = find_value(arr, 5, target);
if (result) {
std::cout << "Found value: " << *result<< std::endl;
} else {
std::cout << "Value not found"<< std::endl;
}
return 0;
}
在這個示例中,我們定義了一個名為 find_value
的函數,該函數在給定數組中查找目標值。如果找到目標值,則返回一個包含該值的 std::optional
;否則,返回一個空的 std::optional
。
在 main
函數中,我們調用 find_value
并檢查結果。如果 result
包含一個值(即 result
為 true
),則輸出找到的值;否則,輸出 “Value not found”。
注意,當你需要訪問 std::optional
中的值時,可以使用 *
運算符進行解引用。但請務必在解引用之前檢查 std::optional
是否包含值,以避免潛在的錯誤。
這就是在 C++ 中優雅地處理 option 類型的方法。希望對你有所幫助!