boost之lexical_cast

lexical_cast

lexical_cast使用统一的接口实现字符串与目标类型之间的转换,需引入头文件#include <boost/lexical_cast.hpp>

template<typename Target, typename Source>
Target lexical_cast(const Source& arg);

// 将字符串的一部分转换为目标类型
template <typename Target>
Target lexical_cast(const AnyCharacterType* chars, std::size_t count);
  • Source必须是一个可以输出到输出流的类型(OutputStreamable),也就是Source类型对于std::ostream或者std::wostream定义了operator<<操作符
  • Target必须是一个可以输入到输入流的类型(InputStreamable),也就是该类型对于std::istream或者std::wistream定义了operator>>操作符

bad_lexical_cast

lexical_cast转换失败抛出bad_lexical_cast异常

优势

lexical_cast比stoi,to_string支持的语义更清晰,接口更统一;同时性能大部分情况下比stringstream,print,scanf等要好。

posted @ 2020-08-14 20:42  HachikoT  阅读(310)  评论(0编辑  收藏  举报