2012-04-13 28 views
1

私が人々と話しているときは、wchar_t配列よりも多くのメモリを消費するため、(DLLプロジェクトで)wstringsと文字列を使用しないようにしています。それはどうですか?同じL"qweqweqweqweqwe" wchar_t配列がwstringより多くのメモリを必要とするか、目立たないのですか?今私は、ANSIとUnicode(多くのnew wchar_t tempdelete)の間で変換しなければならないとき、私は少し混乱しているwstring/wchar_tを使用しているC++

+1

申し訳ありませんが、私はあなたの特定の質問が何であるか分かりません。あなたが興味をそそられるものを具体的に明らかにすることはできますか? – templatetypedef

答えて

2

典型的な使用法では、重要なstring/wstringのメモリ使用量の違いや文字配列は表示されません。一方、文字配列を使用すると、コードにバグやリークが発生する可能性があります。そのため、コードを扱う際にはすべての時間を費やしています。

C++コミュニティ全体では、std::stringが文字列を処理する方法として認められています。文字配列を使用したいと思っている人は、ベンチマークでその点を証明するように強制されなければなりません。彼らの視点を証明するためには、君は狂人の上にいるはずだ。

5

「多くの新しいwchar_tのtempと削除」

これは通常非常に悪い考えです。 Stroustrup氏によれば、一般的には、オブジェクトを使用してメモリ管理を行う必要があります(RAIIを参照)。 本当にが必要な場合にのみ、生のポインタを使用してください。 STLを好む、スマートポインタを好む、ブーストを使う、新しく書き込む、そして削除するときは、例外の安全性について本当に気を配ってください。それ以外の場合は、コードのデバッグにほとんどの時間を費やします。

本当に良い理由がない限り、文字列クラスを使用します。メモリ使用量の違いは、通常は重要ではありません。プロファイラが指示する場合にのみ最適化します。 「時期尚早最適化はすべての悪の根源です」(Don Knuth)

関連する問題