Boost中的wstring字符串转换器

时间:2012-03-29 08:03:22

标签: string boost converter

我使用Boost库来实现我的应用程序。我的应用程序的数据模型中的所有字符串字符都是宽字符(wchar_t类型)。但是在boost库中,有些类只处理窄char(char类型),即“address boost::asio::ip::address::from_string(const char* str)”。所以我需要在调用boost函数时在std :: string和std :: wstring之间进行转换。

  1. 是否因字符串转换而导致性能问题?
  2. 在Boost中有转换器,它使std :: wstring和std :: string之间的转换具有良好的性能?
  3. 更新

    关于转换器功能。我发现下面的代码有效。

    std::wstring wstr(L"Hello World");
    const std::string nstr( wstr.begin(),  wstr.end());
    const std::wstring wstr2(nstr.begin(), nstr.end());
    

1 个答案:

答案 0 :(得分:3)

自己添加研究结论。

关于字符串转换的性能开销。我调试了上面的函数。转换由C的C-cast char实现。时间复杂度为O(L),L是字符串的长度。在我的应用程序中,需要转换的字符串不是很长。所以我认为由于转换而没有明显的性能延迟。