能解决什么问题?
需求:在给定数组中找目标值,返回目标值所在下标
方案一:返回 magic number,-1 表示给定数组不存在目标值,>= 0 表示目标值的下标
int find_target(int arr[], size_t sz, int tar);
方案二:返回 pair,bool 指示是否存在
pair<bool, size_t> find_target(int arr[], size_t sz, int tar);
使用 optional 的话:
-
比起方案一,optional 更加可读,因为它显式表达意图
-
比起方案二,optional 良好地处理构造开销高昂的对象