gpt4 book ai didi

c++ - 常规 "string"类与 "rwcstring"类之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:22 25 4
gpt4 key购买 nike

谁能告诉我常规 string 类和 roguewave 的 rwcstring 类之间的确切区别。我的项目中的代码大量使用了 rwcstring 类。我的疑问是,如果两者都处理和操纵字符串,那么两者之间的确切区别是什么。还有为什么 rwcstring 类被认为比常规 string 类更有效?

最佳答案

RogueWave 的 RWCString 使用一种称为惰性复制 的技术来提高其性能。基本上,这意味着复制一个字符串(通过复制构造函数或复制赋值运算符)实际上并没有复制字符串的内容,而只是保留了一个指向原始字符串内容的指针。复制只有在真正需要的时候才进行(通常是因为字符串内容即将被修改)。由于字符串永远不会被修改是很常见的,因此这提供了可衡量的性能改进。

std::string 实现并未明确禁止使用此技术。事实上,标准中的一些规定就是考虑到这种可能的优化。问题是有一些方法可以破坏这种机制,例如获取指向字符串内容的指针并直接更改它们,而不使用类机制。这就是为什么 std::string 很少使用延迟复制的原因。

所以,总而言之,您可能会说 RWCStringstd::string 的通常实现更高效,但也更不安全。

关于c++ - 常规 "string"类与 "rwcstring"类之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16272628/

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