Преобразователь строк wstring в Boost - PullRequest
5 голосов
/ 29 марта 2012

Я использую библиотеку Boost для реализации своего приложения.Все строковые символы в модели данных моего приложения являются широкими символами (тип wchar_t).Но в библиотеке надстройки некоторые классы используют только узкий тип char (тип char), то есть "address boost::asio::ip::address::from_string(const char* str)".Поэтому мне нужно сделать преобразование между std :: string и std :: wstring при вызове функций наддува.

  1. Есть ли проблема с производительностью из-за преобразования строк?
  2. конвертер в Boost, который делает преобразование между std :: wstring и std :: string с хорошей производительностью?

ОБНОВЛЕНИЕ

Относительно функции преобразователя.Я нахожу код ниже работает.

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

1 Ответ

3 голосов
/ 07 апреля 2012

Добавить заключение исследования самостоятельно.

Что касается снижения производительности преобразования строк.Я отлажен в функции выше.Преобразование осуществляется C-Cast char на char.Временная сложность составляет O (L), L - длина строки.В моем приложении строки, которые необходимо преобразовать, не очень длинные.Так что я не думаю, что из-за конверсий существует явная задержка производительности.

...