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

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

如果我们在函数中使用const std::string&类型的输入参数,当我们传入C风格字符串时,那么首先要生成一个string对象,此时带来了额外的拷贝操作。如果我们要避免这样的情况发生,那么我们就必须把入参设置为const char*类型,但是这是C风格字符串类型,调用此类函数是很麻烦的,如下所示:

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

但如果我们使用std::string_view,那么这些问题都可以解决,如下面的代码所示:

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

适用场景2:要进行string.substr()操作时:

对字符串进行处理是一个很常见的业务场景,如果我们需要从字符串中提取某些字段,使用std::string_view是一个非常好的选择。

以一个字符串分割函数StringSplit为例,下面代码是常规编写方法:

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

在上述代码中,每分割完一次字符串,都需要把已经分割完的部分去掉,但是我们不能改变原字符串,因此只能拷贝一个新的字符串传入下一次递归中。但是如果使用字符串视图:std::string_view,那么可以改变字符串视图然后传入下一次递归中,因为改变字符串视图是不会改变原字符串的,从而避免一次了字符串拷贝,代码示例如下:

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

上一页12345下一页

栏目热文

文档排行

本站推荐

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