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等要好。