STL容器使用的std::string_view

6

以下是一个关于 string_view 对象的好解释。

除了 std::string 之外,STL 容器中是否有其他 '_view' 对象呢?

在我看来,这是一件非常有用的事情。想象一下一个 std::vector_view 类,它只存储一个 start 迭代器和一个 length 字段,而不实际拥有底层数据,可以带来极大的效率提升。


我认为这是无用的。想法是在幕后实现一些内存管理,但通常如果你复制向量,你会改变它。因此,无论如何,你都需要复制它。如果你不打算改变它,那么你可以使用const指针或“&”而没有风险。如果你计划从不同的线程中执行它,那么复制通常更好,以避免任何竞争。 因此,最终这种功能的使用情况非常罕见,但它将在代码中增加复杂性和额外的层。 - Arkady
1
@Arkady,我非常尊重地不同意您的观点。_view对象有一个明确定义的用例。正如您所指出的那样,它们并不适用于每种情况,但这并不改变在某些情况下它们可以提供巨大改进的事实。 - GenericDeveloperProfile
1个回答

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接