c++展示,c+操作教程

首页 > 经验 > 作者:YD1662022-11-01 07:58:19

二、std::optional 更优雅地编写可能无返回结果的函数用法:

使用std::optional<T>来修饰函数返回值,表明这个函数可能不会返回值,T代表原有的返回类型。具体使用方法见示例函数TestOptionalInt:

c++展示,c+操作教程(5)

用途:

过去当我们编写一个获取目标值的函数时,如果这个函数在某些情况下不能返回目标值,那么我们就必须通过两个参数去获得目标值:一个参数来表明是否存在目标值,另一个参数返回目标值;或者是在函数无返回值时抛出异常。下面以FindUserName函数来展示C 17之前的几种实现途径。

c++展示,c+操作教程(6)

引入C 17的std::optional<T>,我们可以更优雅更安全的编写FindUserName函数。

c++展示,c+操作教程(7)

三、std::string_view 字符串视图用法:

C 17引入的std::string_view来协助程序员更高效的使用只读字符串,初始化std::string_view时需要传入已有的字符串。作为函数参数时只使用值拷贝形式,即std::string_view;不要引用字符串视图,即:std::string_view&。

std::string_view本质上是持有一个字符串的指针,因此需要保证:①被持有的字符串生命周期比std::string_view变量长;②被持有的字符串在std::string_view变量生命周期结束之前,保持不变。

用途:

当遇到需要使用只读字符串,尤其是传入只读字符串作为函数参数时,优先使用std::string_view。在以下两个场景使用string_view比使用 const string&更好。

适用场景1:可能传入只读C风格字符串参数时

C风格字符串是指: const char* str = "C风格字符串"

char* str = "C风格字符串"

char[] str_array = "C风格字符串"

以一个字符串打印函数StringDisplay为例,下面的代码是常规的编写方法。

c++展示,c+操作教程(8)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.