首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >static_cast vs boost::lexical_cast

static_cast vs boost::lexical_cast
EN

Stack Overflow用户
提问于 2013-07-22 23:03:38
回答 1查看 2.3K关注 0票数 5

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

代码语言:javascript
复制
int num=13;
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();

或者我也可以使用boost库的lexical_cast

代码语言:javascript
复制
int num=13;
string str= "Text" + boost::lexical_cast<std::string>(num);

既然我已经知道转换类型(intstring),那么boost::lexical_cast的使用是否会更有效?或者static_cast也同样有效,而不需要依赖外部库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-22 23:14:29

代码语言:javascript
复制
string str = "Text" + static_cast<ostringstream*>( &(ostringstream() << num) )->str();

这是丑陋的,不容易阅读。除此之外,我们可以肯定地说,使用lexical_cast是“更好的”,因为lexical_cast几乎完全做到了这一点。

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

代码语言:javascript
复制
string str = "Text" + to_string(num);

哪一个是最好的选择,只要你的编译器支持它。

另请参阅How to convert a number to string and vice versa in C++

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17790972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档