我试图将一个整数连接到一个已知字符串,我发现有几种方法可以做到,其中两种是:
int num=13;
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
或者我也可以使用boost
图书馆'lexical_cast
:
int num=13;
string str= "Text" + boost::lexical_cast<std::string>(num);
使用boost::lexical_cast
是否更有效率,因为我已经知道转换类型(int
到string
)?或者static_cast
是否同样有效,而不必依赖外部库?
答案 0 :(得分:5)
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
这很丑陋,不易阅读。除此之外,lexical_cast几乎就是这样,我们可以肯定地说使用lexical_cast是“更好”。
但是,在C ++ 11中,我们有to_string
次重载。
string str = "Text" + to_string(num);
如果您的编译器支持,那么这是最佳选择。