在C++中,你最喜欢的字符串处理方式是什么?一个C风格的char数组?或wchar_t?CString、std::basic_string、std::string、BSTR或CComBSTR
当然,其中每一个都有自己的应用领域,但不管怎样,哪一个是你最喜欢的,为什么?
发布于 2008-09-25 13:51:55
std::string或std::wstring,取决于您的需要。为什么?
它们是可移植的可移植代码它们可以处理standard
>H113>被很好地模板化,在减少代码膨胀和提高性能的同时为您提供了广泛的选择。真的。不能处理模板的编译器现在早就不存在了。
C风格的字符数组是在自找麻烦。有时您仍然需要处理它们(这就是std::string.c_str()的用途),但是,老实说,C中最大的危险之一是程序员使用char*做坏事并最终导致缓冲区溢出。不要这样做。
wchar__t数组也是一样的,只是更大一些。
CString、BSTR和CComBSTR不是标准的,也不能移植。除非绝对强制,否则请避免使用它们。最好是在需要时将std::string/std::wstring转换为它们,这应该不是很昂贵。
注意,std::string只是std::basic_string的子类,但是除非您有充分的理由不使用std::string,否则最好还是使用std::string。真的很棒。在这种情况下,让编译器来处理优化。
发布于 2008-09-25 13:42:43
std::string !!
这就是为什么他们称之为“标准”的原因。
basic_string是一个实现细节,应该忽略它。
BSTR & CComBSTR仅适用于带有COM的interop,并且仅适用于互操作的瞬间。
发布于 2008-09-25 13:40:21
std::string,除非我需要调用专门接受您列出的其他参数之一的API。
https://stackoverflow.com/questions/133364
复制相似问题