gpt4 book ai didi

c++ - 为什么只有字符串 View ?

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:01 26 4
gpt4 key购买 nike

C++17 的字符串 View 为开发人员提供了一种方法,可以将廉价的非拥有引用传递给实际上可以是 faster than const std::string& 的字符串。 .我可能很天真,但这听起来与 Java 复制对象的引用 的内置机制非常相似。 Integer 和 String 等内置包装器是不可变的。 Java 的“引用”机制可以保证这些对象在程序的整个生命周期中都具有相同的值。不同之处在于在 C++ 中,string_view 在程序中是显式的,如下所示:

void retrieve_an_object (string_view sv) {
}

与 Java 令人惊讶的(对 C++ 开发人员而言)机制相比,这更像是 self 记录。但是,用 C++ 为每个可以想到的类编写一个 View 类对于标准和库编写者来说无疑是一个巨大的负担。 C++ 是否可以有一种更专用的方法来将对象标记为“仅查看”而无需编写整个类?如果可以,为什么不考虑这一点?

最佳答案

View 类(string_viewarray_view)旨在提供(只读)访问它们正在呈现的对象的部分
就像一个const &以及关于不同开始和结束的额外信息。

C++ 有一个专门用于查看对象的方法:const & . (以及 std::reference_wrapper<const T> )

如果您只想授予对某些数据结构的特定部分的访问权,您需要一个专用的 View 类,它知道哪些部分应该可用,这本身并不是真正通用的。

关于c++ - 为什么只有字符串 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43023938/

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