c++ 17:string-爱代码爱编程
string_view 是C++17所提供的用于处理只读字符串的轻量对象。
考虑一下这种场景,我们有一个字符串,然后我们想获取这个字符串中的某个子串,然后对这个字符串做一些只读操作,例如将其与其他字符串作比较,输出等。一般情况下,我们会使用std::string.substr()
,但是此时会新建一个std::string
对象,并且进行内存分配。但是大量的新建对象和分配内存会使得程序的性能降低,那么我们有没有什么方法来避免这个过程,提高性能呢?
C++17给出的答案就是std::string_view
。同样获取一个子串,std::string_view
的操作是只保存下一个指针和子串的长度。省去了分配内存及赋值等操作。