[英]Is std::string inferior to QString?
我的一位同事声称std::string
的实现,特别是内存管理不如Qt库中的QString
。 std::string
哪些方面也可以引用?
关于内存管理, QString
使用copy-on-write,现在在C ++标准库中明确禁止。 但这是有原因的。 写时复制习语在多线程环境中表现更差,因为它需要同步。 本文将更详细地讨论这些问题。
另一方面, std::string
实现通常使用小字符串优化(SSO)来避免小字符串的任何动态内存分配。 这是弦乐的当前技术水平。
通过内存管理,您必须确定哪些更适合您的应用程序。 但是,与std :: string相比,QString明显闪耀的一个地方是unicode支持。 QString在内部存储UTF-16编码的字符串,而std :: string是编码不可知的。 当你必须处理用户提供的多字节编码字符串时,这通常使得使用QString而不是std :: string变得更加简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.