以下代码显示了将std::to_string
std::stringstream
转换为int
的2个解决方案(m_currentSoundTime
和std::string
)。 std::to_string
或std::stringstream
更快?
// Compute current sound time in minute and convert to string
stringstream currentTime;
currentTime << m_currentSoundTime / 60;
m_currentSoundTimeInMinute = currentTime.str();
或
m_currentSoundTimeInMinute = to_string( m_currentSoundTime / 60 );
答案 0 :(得分:6)
在任何合理的库中,实现to_string
至少与此stringstream
一样快。但是,如果您想将10个整数放入字符串中,stringstream
可能会更快。如果您要执行to_string(a) + ", " + to_string(b) + /*...*/
,则每个操作都可能导致分配以及从前一个字符串到新分配的副本 - 与stringstream
不一致。
更重要的是,从您的示例代码中可以明显看出to_string
对于将单个 int转换为字符串更加清晰。
答案 1 :(得分:2)
这个blog post测试了几种int-to-string转换方法(在Ubuntu 13.04上使用GCC 4.7)。在这
case to_string
比stringstream
慢一些。但这可能很大程度上取决于编译器和std库。