【发布时间】:2013-07-22 15:03:38
【问题描述】:
我正在尝试将一个整数连接到一个已知字符串,我发现有几种方法可以做到这一点,其中两种是:
int num=13;
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();
或者我也可以使用boostlibraries'lexical_cast:
int num=13;
string str= "Text" + boost::lexical_cast<std::string>(num);
由于我已经知道转换类型(int 到 string),使用boost::lexical_cast 是否更有效?还是static_cast 一样有效,无需依赖外部库?
【问题讨论】:
-
IMO,
lexical_cast更具可读性。注意c++11中还有std::to_string()。 -
在您的第一个示例中,为什么要转换为 指针?
-
@KonradRudolph:我最初写的演员在我的回答中是不必要的(请参阅编辑历史记录),但似乎运算符
-
@Armen 我知道演员 itself 是需要的,但是获取地址并转换为 pointer 是复杂的。只是投给参考。这在句法和概念上都更直接。
-
@KonradRudolph:是的,我猜