谁能告诉我普通string
班和roguewaverwcstring
班之间的确切区别。我项目中的代码广泛使用rwcstring
该类。我的疑问是,如果两者都处理和操纵字符串,那么两者之间的确切区别是什么。还有为什么 rwcstring 类被认为比普通string
类更有效?
问问题
3101 次
2 回答
3
RogueWaveRWCString
使用一种称为惰性复制的技术来提高其性能。基本上,这意味着复制字符串(无论是通过复制构造函数还是复制赋值运算符)实际上并不复制字符串的内容,而只是保留指向原始字符串内容的指针。仅在真正需要时才进行复制(通常是因为字符串内容即将被修改)。由于字符串永远不会被修改是很常见的,这提供了可衡量的性能改进。
std::string
没有明确禁止实现使用这种技术。事实上,标准中的一些规定是考虑到这种可能的优化。问题是有一些方法可以破坏这种机制,例如获取指向字符串内容的指针并直接更改它们,而不使用类机制。这就是为什么不std::string
使用惰性复制的原因。
所以,总而言之,你可能会说它RWCString
比std::string
.
于 2013-04-29T08:19:21.143 回答
0
于 2013-04-29T08:00:56.723 回答