1

wchar_t 配列よりも多くのメモリを消費するため、(DLL プロジェクトで) wstring と文字列を使用することから私を生まれ変わらせている人々と話しているときはいつでも、何度も。どうですか?同じL"qweqweqweqweqwe"wchar_t 配列は wstring よりも多くのメモリを必要としますか、それとも目立ちませんか? Ansi と Unicode の間で変換する必要があるとき、私は少し混乱しています (多くのnew wchar_t tempdelete)

4

2 に答える 2

5

「多くの新しいwchar_ttempおよびdelete」

それは通常、非常に悪い考えです。Stroustrupが言うように、あなたは一般的にあなたのためにメモリ管理をするためにオブジェクトに頼るべきです(RAIIを調べてください)。生のポインタは、それが本当に必要であり、実装の奥深くにある場合にのみ使用してください。STLを優先し、スマートポインターを優先し、ブーストを使用し、新規書き込みを行い、例外の安全性を本当に必要としている場合にのみ削除します。それ以外の場合は、ほとんどの時間をコードのデバッグに費やします。

答えは次のとおりです。本当に正当な理由がない限り、文字列クラスを使用してください。通常、メモリ使用量の違いは重要ではありません。プロファイラーから指示された場合にのみ最適化してください。「時期尚早の最適化はすべての悪の根源です」(ドン・クヌース)。

于 2012-04-13T19:41:44.283 に答える
2

string通常の使用では、 /wstringと文字配列のメモリ使用量に大きな違いは見られません。一方、文字配列を使用すると、コードにバグやリークが発生しやすくなり、それらの処理にすべての時間を費やすことになります。

文字列を処理する方法として、C++ コミュニティ全体で受け入れられていstd::stringます。文字配列を使用したいという異端者は、ベンチマークで自分の主張を証明する必要があります。彼らの見解を証明する責任はフリークにあるはずです。

于 2012-04-13T18:40:15.777 に答える