任何人都可以请让我知道常规string
类和roguewave的rwcstring
类之间准确的区别。我项目中的代码广泛使用rwcstring
类。我的疑问是,如果两者都处理和操纵字符串,那么两者之间的确切区别是什么。另外为什么rwcstring类被认为比常规的string
类更有效率?区别
Q
区别
4
A
回答
2
RogueWave的RWCString
使用一种被称为懒惰复制以改善其性能的技术。基本上,这意味着复制一个字符串(无论是通过拷贝构造函数或拷贝赋值运算符)实际上并没有复制字符串的内容,但只是保持一个指向原始字符串的内容。复制只在真正需要时才会完成(通常是因为字符串内容即将被修改)。由于字符串永远不会被修改是非常常见的,因此可以提供可衡量的性能改进。
std::string
实现不明确地使用这种技术被禁止。事实上,标准中的一些规定是考虑到了这种可能的优化。问题在于有一些方法可以打败这种机制,比如将指针指向字符串的内容并直接更改它们,而不使用类机制。这就是为什么它是不寻常的std::string
使用偷懒复制的原因。
因此,总而言之,您可能会说RWCString
更高效,但也比std::string
的常规实施更安全。
0
相关问题
为什么不看医生? http://www.roguewave.com/portals/0/products/sourcepro/docs/11/html/toolsref/rwcstring.html – ForEveR 2013-04-29 06:44:03