C ++中不同字符串类型的优缺点

时间:2009-01-27 22:34:45

标签: c++ string cstring

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

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

5 个答案:

答案 0 :(得分:7)

在罗马时,像罗马人一样。如果您正在使用MFC,请使用CString,因为这些类都已针对它进行了优化。除此之外,使用std :: string,因为它是标准,你会发现在其他环境中有用的经验。

答案 1 :(得分:5)

的std :: string

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

答案 2 :(得分:3)

总结......

std :: string优点:

  • 便携式
  • STL&增强算法支持
  • 比CStrings更安全

std :: string缺点:

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

CString优点:

  • 针对CString
  • 优化的MFC功能

CString缺点:

  • 不便携
  • 无增强或STL算法支持

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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