C++ C++;使用wstring/wchar\t

C++ C++;使用wstring/wchar\t,c++,string,wchar-t,wstring,C++,String,Wchar T,Wstring,很多时候,每当我与人交谈时,他们都会让我不再使用(在DLL项目中)wstring和string,因为它们比wchar\t数组消耗更多内存。怎么样?相同的L“qweqweqweqwe”wchar\u t数组需要比wstring更多的内存,还是不明显?现在,当我必须在Ansi和Unicode之间进行转换时,我有点困惑(许多新的wchar__t temp和删除)在典型用法中,您不会看到字符串/wstring和字符数组在内存使用方面的显著差异。另一方面,如果您使用字符数组,您的代码很可能充满bug和漏洞

很多时候,每当我与人交谈时,他们都会让我不再使用(在DLL项目中)wstring和string,因为它们比wchar\t数组消耗更多内存。怎么样?相同的
L“qweqweqweqwe”
wchar\u t数组需要比wstring更多的内存,还是不明显?现在,当我必须在Ansi和Unicode之间进行转换时,我有点困惑(许多
新的wchar__t temp
删除

在典型用法中,您不会看到
字符串
/
wstring
和字符数组在内存使用方面的显著差异。另一方面,如果您使用字符数组,您的代码很可能充满bug和漏洞,您将花费所有时间处理这些问题


<> P>整个C++社区都接受了,<代码> STD::String 是处理字符串的方法。任何想要使用字符数组的小牛都应该被迫用基准来证明他们的观点。怪胎们有责任证明他们的观点。

在典型的使用中,你不会看到字符串和字符数组在内存使用上的显著差异。另一方面,如果您使用字符数组,您的代码很可能充满bug和漏洞,您将花费所有时间处理这些问题

<> P>整个C++社区都接受了,<代码> STD::String 是处理字符串的方法。任何想要使用字符数组的小牛都应该被迫用基准来证明他们的观点。怪胎们有责任证明他们的观点。

“许多新的wchar\u t temp和delete”

这通常是一个非常糟糕的主意。正如Stroustrup所说,您通常应该依赖对象来为您进行内存管理(查找RAII)。只有在真正必要的情况下才使用原始指针,并且只在实现的深处使用。更喜欢STL,更喜欢智能指针,使用boost,只在你真的需要的时候才写new和delete,并且关心异常安全。否则,您将花费大部分时间调试代码

答案是:除非你有很好的理由,否则使用字符串类。内存使用的差异通常是微不足道的。仅当探查器告诉您时才进行优化。“过早优化是万恶之源”(Don Knuth)。

“许多新的wchar\u t temp和delete”

这通常是一个非常糟糕的主意。正如Stroustrup所说,您通常应该依赖对象来为您进行内存管理(查找RAII)。只有在真正必要的情况下才使用原始指针,并且只在实现的深处使用。更喜欢STL,更喜欢智能指针,使用boost,只在你真的需要的时候才写new和delete,并且关心异常安全。否则,您将花费大部分时间调试代码


答案是:除非你有很好的理由,否则使用字符串类。内存使用的差异通常是微不足道的。仅当探查器告诉您时才进行优化。“过早优化是万恶之源”(Don Knuth)。

对不起,我不明白你的具体问题是什么。你能具体说明你对什么感兴趣吗?对不起,我不明白你的具体问题是什么。你能具体说明你对什么感到好奇吗?