gpt4 book ai didi

c++ - 除了 std::string_view 方法之外, std::string_view 比 char* 有什么优势吗?

转载 作者:搜寻专家 更新时间:2023-10-30 23:52:11 26 4
gpt4 key购买 nike

除了 std::string_view 方法之外,std::string_view 是否比 char* 有任何优势?

如果没有使用 string_view 的方法,是否有任何理由将 char* 重构为 string_view

最佳答案

char* 只是一个指向字符的指针。要将其解释为字符串,您需要一个长度,可以是显式的(pascal 字符串将其存储在第一个字符之前,或者您可以将长度信息作为另一个参数或结构成员传递给它),或者是隐式的(空终止)。

字符串 View 是上述第二个 View 的抽象。与第一个或第三个不同,它不需要字符串缓冲区的连续数据来包含长度信息。这意味着您可以在 O(1) 时间内创建非拥有子字符串而无需复制,这是其他两种方法无法做到的。

确定上述第一种和第二种情况的字符串长度是 O(1) 和 O(n) 以空终止。这很重要。

字符串 View 与一对 char* 或与长度配对的 char* 相比没有根本优势;与那些相比,你所获得的只是实用方法。但它与空终止字符缓冲区有根本不同。

关于c++ - 除了 std::string_view 方法之外, std::string_view 比 char* 有什么优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50457461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com