【问题标题】:Pros and Cons of different string types in C++C++中不同字符串类型的优缺点
【发布时间】:2009-01-27 22:34:44
【问题描述】:

很抱歉开始另一个关于 SO 的无法回答的问题,但我只是对 C++ 中所有不同字符串类型的优缺点感到好奇。我的特殊问题是在 MFC 的 CStrings 和 std::string 之间(因为我正在做仅限 Windows 的软件),但这将扩展到 C++ 中的任何字符串格式。在 C++ 中使用的最佳字符串类型是什么,为什么?

更新:我实际上发现了一个重复的问题。感谢那些已经回答的人。请直接对其他问题的任何新回复:How do you handle strings in C++?

【问题讨论】:

标签: c++ string cstring


【解决方案1】:

在罗马时,像罗马人那样做。如果您使用 MFC,请使用 CString,因为所有类都针对它进行了优化。其他任何事情,使用 std::string,因为它是标准,您会发现这种体验在其他情况下很有用。

【讨论】:

    【解决方案2】:

    标准::字符串

    1. 它是 STL 的一部分
    2. 它是便携式的。
    3. 正确使用它可以像 c-strings 一样高效
    4. 它比 c-strings 更安全。

    【讨论】:

      【解决方案3】:

      总结一下……

      std::string 优点:

      • 便携
      • STL 和 Boost 算法支持
      • 比 CStrings 更安全

      std::string 缺点:

      • 为 MFC 转换为 CString 可能会更慢

      CString 优点:

      • 针对 CString 优化的 MFC 函数

      CString 缺点:

      • 不便携
      • 不支持 Boost 或 STL 算法

      【讨论】:

        【解决方案4】:

        std::string 除了 STL 中的算法外,还可以通过 boost 字符串算法进行操作。对我来说,std::string 的支持库完全击败了 MFC。

        【讨论】:

          【解决方案5】:

          c++ 字符串类型的大多数问题都来自需要太大内存开销的一种或另一种字符串类型。也就是说,如果您必须从一种字符串类型转换为另一种字符串类型,它也会变得繁重。如果您正在构建一个大型应用程序,我建议您制定一个关于使用哪些字符串的策略。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-03
            • 2011-08-02
            • 1970-01-01
            相关资源
            最近更新 更多