3

SO に関する別の答えられない質問を開始して申し訳ありませんが、C++ のすべての異なる文字列型の長所と短所に興味があります。私の特定の質問は、MFC の CStrings と std::string (Windows のみのソフトウェアを使用しているため) の間ですが、これは C++ の任意の文字列形式に拡張されます。C++ で使用するのに最適な文字列型は何ですか?その理由は何ですか?

更新:実際に重複した質問が見つかりました。すでに答えてくれた人に感謝します。この他の質問への新しい回答を指示してください: C++ で文字列をどのように処理しますか?

4

5 に答える 5

7

ローマにいるときは、ローマ人がするようにしなさい。MFC を使用している場合は、すべてのクラスが最適化されているため、CString を使用してください。それ以外の場合は、std::string を使用してください。これは標準であり、他のコンテキストでこの経験が役立つことがわかるからです。

于 2009-01-27T22:52:09.647 に答える
5

std::文字列

  1. STLの一部です
  2. ポータブルです。
  3. 正しく使用すると、c-strings と同じくらい効率的です
  4. Cストリングよりも安全です。
于 2009-01-27T22:39:32.857 に答える
3

要約する...

std::string 長所:

  • ポータブル
  • STL & Boost アルゴリズムのサポート
  • CStrings よりも安全

std::string 短所:

  • MFC の CString への変換が遅くなる可能性があります

CString 長所:

  • CString 用に最適化された MFC 関数

CString 短所:

  • ポータブルではありません
  • ブーストまたは STL アルゴリズムのサポートなし
于 2009-01-28T00:31:39.027 に答える
1

std::string can be manipulated by boost string algorithms in addition to the ones in STL. For me the support libraries for std::string just beat MFC hands down.

于 2009-01-27T22:57:29.200 に答える
0

C++ 文字列型に関する問題のほとんどは、大きすぎるメモリ オーバーヘッドを必要とするいずれかの文字列型に起因します。とはいえ、ある文字列型から別の型に変換する必要がある場合は、面倒になることもあります。大規模なアプリを構築している場合は、使用する文字列に関するポリシーを作成することをお勧めします。

于 2009-01-27T22:40:42.573 に答える