5

我试图将一个整数连接到一个已知的字符串,我发现有几种方法可以做到这一点,其中两种是:

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既然我已经知道转换类型(intto ),那么是否以任何方式使用更有效string?还是static_cast同样有效,无需依赖外部库?

4

1 回答 1

8
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();

这是丑陋的,不容易阅读。再加上 lexical_cast 在下面几乎完全做到了这一点,我们可以肯定地说使用 lexical_cast 是“更好的”。

然而,在 C++11 中,我们有to_string重载。

string str = "Text" + to_string(num);

如果您的编译器支持它,这是最好的选择。

另请参阅如何在 C++ 中将数字转换为字符串,反之亦然

于 2013-07-22T15:14:28.790 回答