C++使用wstring/wchar_t

use*_*008 1 c++ string wchar-t wstring

很多时候,当我与人交谈时,他们正在重新使用(在DLL项目中)wstrings和字符串,因为它们比wchar_t数组消耗更多内存.怎么样?L"qweqweqweqweqwe"wchar_t数组是否需要比wstring更多的内存,或者它是不明显的?当我必须在Ansi和Unicode(很多new wchar_t tempdelete)之间进行转换时,我有点困惑

小智 5

"很多新的wchar_t temp和delete"

这通常是一个非常糟糕的主意.正如Stroustrup所说,你通常应该依靠对象为你做内存管理(查找RAII).只有在真正需要时才使用原始指针,并且只在您的实现中使用深层次.喜欢STL,喜欢智能指针,使用boost,写新和删除只有你真的需要并关心异常安全.否则,您将花费大部分时间来调试代码.

答案是:除非你有充分的理由,否则请使用字符串类.内存使用的差异通常是微不足道的.仅在探查器告诉您时进行优化."过早优化是所有邪恶的根源"(Don Knuth).